Implementing Java on Clusters

We have implemented a virtual machine (VM) for Java which executes on a cluster. Our cluster VM completely hides the cluster from the application, presenting a single system image (SSI) (i.e., the application sees a traditional virtual machine). At the same time it leverages the cluster to achieve improved performance for a range of applications. We show how the flexibility and constraints of the Java Virtual Machine (JVM) Specification [7] impacted the design of our cluster VM. We describe issues related to class loading and distribution-aware implementations of the bytecodes. We also point out the limits on providing a solution for completely transparent distribution of multi-threaded Java applications if one does not modify the VM or the core classes.

[1]  Denis Caromel,et al.  A Java Framework for Seamless Sequential, Multi-threaded, and Distributed Programming , 1998 .

[2]  Vladimir Getov,et al.  High-Performance Parallel Programming in Java: Exploiting Native Libraries , 1998, Concurr. Pract. Exp..

[3]  Alan L. Cox,et al.  Java/DSM: A Platform for Heterogeneous Computing , 1997, Concurr. Pract. Exp..

[4]  Suresh Jagannathan,et al.  Transparent communication for distributed objects in Java , 1999, JAVA '99.

[5]  Assaf Schuster,et al.  Transparently Obtaining Scalability for Java Applications on a Cluster , 2000, J. Parallel Distributed Comput..

[6]  David E. Culler,et al.  Jaguar: enabling efficient communication and I/O in Java , 2000 .

[7]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

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

[9]  Philip J. Hatcher,et al.  Executing Java threads in parallel in a distributed-memory environment , 1998, CASCON.

[10]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

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

[12]  Jean-Louis Pazat,et al.  A Framework for Parallel Programming in JAVA , 1998, HPCN Europe.

[13]  Seth Copen Goldstein,et al.  Active Messages: A Mechanism for Integrated Communication and Computation , 1992, [1992] Proceedings the 19th Annual International Symposium on Computer Architecture.

[14]  Michael Factor,et al.  cJVM: a single system image of a JVM on a cluster , 1999, Proceedings of the 1999 International Conference on Parallel Processing.