M-JavaMPI: A Java-MPI Binding with Process Migration Support

Several Java bindings to the Message Passing Interface (MPI) software have been developed for high-performance parallel Java-based computing with message-passing in the past. None of them however addressed the issue of supporting transparent Java process migration for achieving dynamic load distribution and balancing. This paper presents a middleware, called M-JavaMPI, that runs on top of the standard JVM to support transparent Java process migration and communication redirection. The middleware allows Java processes to freely and transparently migrate between machines to achieve load balancing, and migrated processes can continue communication with other processes using MPI. The method we use to achieve process migration is to capture execution context and restoring the execution context at the Java bytecode level using the Java Virtual Machine Debugger Interface (JVMDI). Post-migration interprocess communication is enabled via a Restorable Java-MPI API. Tests using a 16-node cluster have Shown that our mechanism yields considerable performance gain through migration.

[1]  Sava Mintchev Writing Programs in JavaMPI , 1997 .

[2]  Dejan S. Milojicic,et al.  Process migration , 1999, ACM Comput. Surv..

[3]  Jon Howell,et al.  Straightforward Java Persistence Through Checkpointing , 1999 .

[4]  Joel H. Saltz,et al.  Network-aware mobile programs , 1997 .

[5]  Cho-Li Wang,et al.  ClusterProbe: an open, flexible and scalable cluster monitoring tool , 1999, ICWC 99. IEEE Computer Society International Workshop on Cluster Computing.

[6]  Geoffrey C. Fox,et al.  MPI for Java , 1999 .

[7]  Markus Dahm,et al.  Byte Code Engineering , 1999, Java-Informations-Tage.

[8]  Geoffrey C. Fox,et al.  MpiJava: A Java Interface to MPI , 1998 .

[9]  Sara Bouchenak,et al.  Pickling threads state in the Java system , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[10]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[11]  Ye Hua,et al.  PJMPI: pure Java implementation of MPI , 2000, Proceedings Fourth International Conference/Exhibition on High Performance Computing in the Asia-Pacific Region.

[12]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

[13]  Danny B. Lange,et al.  Programming and Deploying Mobile Agents with Java Aglets , 1998 .

[14]  Akinori Yonezawa,et al.  A Simple Extension of Java Language for Controllable Transparent Migration and Its Portable Implementation , 1999, COORDINATION.

[15]  Francis C. M. Lau,et al.  JESSICA: Java-Enabled Single-System-Image Computing Architecture , 2000, J. Parallel Distributed Comput..

[16]  Kivanç Dinçer,et al.  A ubiquitous message passing interface implementation in Java:jmpi , 1999, Proceedings 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing. IPPS/SPDP 1999.

[17]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[18]  Holger Peine,et al.  The Architecture of the Ara Platform for Mobile Agents , 1999, Mobile Agents.

[19]  Vladimir Getov,et al.  Towards Portable Message Passing in Java: Binding MPI , 1997, PVM/MPI.

[20]  Luís Moura Silva,et al.  Using mobile agents for parallel processing , 1999, Proceedings of the International Symposium on Distributed Objects and Applications.