Mobility is a primary functionality of the next generation computing. Intensive research has been done in recent years on mobile agents and mobile computing. However, most of the current success is based on safe-languages such as Java. While this safe-language approach provides a satisfactory solution for many applications, it has inherent limitations, especially for technical computing applications. In this research, we propose the development of a prototype mobility middleware, namely High Performance Computing Mobility (HPCM) middleware, to increase the mobility of legacy codes written in stack-based languages such as C, Fortran, or C++. A key-point of HPCM is the support of heterogeneous process and object migration. Approaches such as CORBA specify the function of process migration, but no existing implementation supports this specification. Condor and Legion are heterogeneous distributed environments but their current implementations only support homogeneous process migration via migration of the binary code. The developers of PVM and HARNESS have identified efficient migration as the highest technical hurdle to jump for building general plug-in virtual machines. HPCM is designed to solve this technical hurdle. Similar to Globus, the components of HPCM can be used as toolkits under different environments. For instance, its migration component should be applicable under CORBA, PVM, Condor, or Legion environment. HPCM also can be used as a low-level layer under JAVA Virtual Machine (JVM) to support the mobility of local native codes. In addition, the experience learned in HPCM should be valuable for the performance improvement of JVM.
In high performance computation, mobility can be achieved by process and object migration, where running processes and objects are transferred from one system to another. The two systems may differ in hardware and/or operating environments, in which case the migration is across heterogeneous platforms. In large-scale distributed environments such as the computational grids, process and object migration allows runtime adaptability in resource utilization by moving processes among computation resources, which can lead to performance improvement for individual applications and high throughput for distributed systems. Importances of process migration have recently been emphasized in many distributed computing frameworks. Nevertheless, developing migration mechanisms for process and object developed on C, Fortran, or C++ in heterogeneous distributed environments is tremendously difficult. While most middleware employ mobile agents in their design, they are not appropriate for high performance computation and cannot enhance mobility to legacy code.
During the years, we have accumulated experiences from the
development of the Migration-point based PVM (MpPVM) and the Scalable Network of Workstations
(SNOW) projects, and have developed foundation migration mechanisms for high performance parallel
and sequential processing. Based on our expertise, we believe that the migration mechanisms developed
in the previous projects can be generalized to form low-level middleware systems to support process
and object migration and mobility for even larger application domains.