Engineering high-performance legacy codes as CORBA components for problem-solving environments
Introduction
A problem-solving environment (PSE) is a complete, integrated computing environment that provides all the computational facilities necessary to solve a target class of problems [11], [28]. The main motivation for developing PSEs is that they provide software tools and expert assistance to computational scientists in a user-friendly environment, allowing more rapid prototyping of ideas and higher research productivity. By relieving scientists of the burdens associated with the inessential and often arcane details of specific hardware and software systems, the PSE leaves them free to concentrate on the science. Construction of PSEs through software components is an approach that has engendered much recent interest [6], [17], [20], [33]. Our CORBA [14] compliant component model guarantees that components written in different programming languages can interoperate with each other.
The remainder of the paper is structured as follows. Section 2 briefly introduces the software architecture of the PSE. Section 3 presents COWG, a CORBA Oriented Wrapper Generator which can be used to automatically wrap high-performance legacy codes in C or Fortran as CORBA components for reuse in the PSE. Section 4 describes case study 1 in which an MDS code is wrapped as a CORBA component with COWG and performance comparisons between runs of the MDS CORBA component and the original legacy code on a cluster of workstations and on a parallel computer are also presented. Section 5 describes case study 2, using COWG to wrap a CFD code as a CORBA component. A Web user can submit a task through a Web page to invoke the CFD component without knowing the exact implementation of the component. Section 6 presents some related work on leveraging legacy codes to a distributed computing environment. Section 7 concludes the paper and gives future work on the wrapper generator.
Section snippets
The software architecture of the PSE
There are two major parts in the PSE, the Visual Component Composition Environment (VCCE) and the Intelligent Resource Management System (IRMS). The VCCE is primarily used to construct applications from software components, and supports the location of components and the transfer of data between them. In the VCCE, a user can visually construct scientific applications by plugging together components, which can range in granularity from simple tasks, such as matrix manipulation, to complete
Engineering high-performance legacy codes as CORBA components
High-performance legacy codes are pre-existing codes, mostly in C or Fortran, that possess the following features:
- •
They are domain-specific.
- •
They are not reusable.
- •
They are still useful.
- •
They are large, complex monoliths.
One of the important research issue in the PSE is to exploit ways to leverage these legacy codes to a distributed computing environment and make them be pluggable and reusable CORBA components. These components can be easily assembled together to construct applications for solving
Case study 1: a molecular dynamic simulation (MDS) application
In this section an example of the use of COWG to automatically generate wrappers for wrapping an MPI-based legacy code as a CORBA component is discussed. We have constructed an application for the molecular dynamics simulations in the PSE. There are two components in the application, one is a User Interface (UI) component, the other is the MDS component automatically wrapped from an MDS legacy code with COWG. These two components can be geographically distributed.
Case study 2: a computational fluid dynamics (CFD) application
The CFD code called PHI3D [40] written in Fortran is a finite-element-based CFD code for simulating incompressible Navier–Stokes flows, and is being used to model flow in the lung and upper respiratory system. The theoretical basis for the new continuity constraint method consists of a finite-element spatial semi-discretization of a Galerkin weak statement, equal-order interpolation for all state-variables, a q-implicit time-integration scheme, and a quasi-Newton iterative procedure extended by
Related work
There is some prior work that addresses issues for generating wrappers with semi-automatic generation or meta-wrapper style to leverage legacy codes to a distributed environment. Vidal [36] suggests wrappers and mediators to access data from heterogeneous database or legacy servers. Ashish [3] suggests that information mediator for obtaining information from multiple Web sources. Sounder [32] provides wrappers for securely integrating legacy systems into a distributed environment. However,
Conclusions and future work
High-performance legacy codes mostly written in C or Fortran making use of message passing paradigms such as MPI are very useful computational resources. COWG has been used to automatically wrap such legacy codes as CORBA components for use in the PSE, a distributed component-based problem-solving environment. In general, a legacy code can be a whole application or a subroutine provided that they meet the requirements of constrains for wrapping a legacy code as a component with COWG. Since
References (40)
- et al.
Predictive resource management for meta-applications
Future Generation Computer Systems
(1999) - et al.
Wrapping MPI-based legacy codes as Java/CORBA components
Future Generation Computer Systems(FGCS)
(2001) Fast parallel algorithms for short-range molecular dynamics
J. Comput. Phys.
(1995)- et al.
Comput. Commun.
(1998) - M. Aleksy, M. Schader, A CORBA-based object group service and a join service providing a transparent solution for...
- et al.
Computer Simulation of Liquids
(1987) - N. Ashish, C.A. Knoblock, Semi-automatic wrapper generation for internet information sources, in: Proceedings of Second...
- D.M. Beazley, P.S. Lomdahl, Lightweight computational steering of very large scale molecular dynamics simulations, in:...
- B. Carpenter, Y.-J. Chang, G. Fox, D. Leskiw, X. Li, Experiments with HPJava, in: Proceedings of Java for High...
- Common Component Architecture Forum, See web page on CCA at...
Computer as thinker/doer problem-solving environments for computational science
IEEE Comput. Sci. Eng.
Cited by (3)
Composition of heterogeneous web services for converting legacy codes to SOA based applications
2011, Proceedings of the ISCA 20th International Conference on Software Engineering and Data Engineering, SEDE 2011A model for scientific computing platform
2009, Proceedings of the 11th WSEAS International Conference on Mathematical and Computational Methods in Science and Engineering, MACMESE '09Virtual human problem-solving environments
2008, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)