The Hyperion system: Compiling multithreaded Java bytecode for distributed execution

Our work combines Java compilation to native code with a runtime library that executes Java threads in a distributed memory environment. This allows a Java programmer to view a cluster of processors as executing a single JAVA virtual machine. The separate processors are simply resources for executing Java threads with true parallelism, and the run-time system provides the illusion of a shared memory on top of the private memories of the processors. The environment we present is available on top of several UNIX systems and can use a large variety of communication interfaces thanks to the high portability of its run time system. To evaluate our approach, we compare serial C, serial Java, and multithreaded Java implementations of a branch and-bound solution to the minimal-cost map-coloring problem. All measurements have been carried out on two platforms using two different communication interfaces: SISCI/SCI and MPI BIP/Myrinet.

[1]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[2]  Alan L. Cox,et al.  Java/DSM: A platform for heterogeneous computing , 1997 .

[3]  Bernard Tourancheau,et al.  BIP: A New Protocol Designed for High Performance Networking on Myrinet , 1998, IPPS/SPDP Workshops.

[4]  Philip J. Hatcher,et al.  Remote object detection in cluster-based java , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[5]  Ulrik Pagh Schultz,et al.  Harissa: A Hybrid Approach to Java Execution , 1999, IEEE Softw..

[6]  Jean-François Méhaut,et al.  Efficient Communications in Multithreaded Runtime Systems , 1999, IPPS/SPDP Workshops.

[7]  Jean-François Méhaut,et al.  PM2: Parallel Multithreaded Machine. A Computing Environment for Distributed Architectures , 1995, PARCO.

[8]  Jason Maassen,et al.  Efficient replicated method invocation in Java , 2000, JAVA '00.

[9]  Bernard Tourancheau,et al.  The Design for a High-Performance MPI Implementation on the Myrinet Network , 1999, PVM/MPI.

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

[11]  Hermann Hellwagner SCI: Scalable Coherent Interface , 1999, Lecture Notes in Computer Science.

[12]  Philip J. Hatcher,et al.  Enabling Java for high-performance computing , 2001, CACM.

[13]  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.

[14]  Adam J. Ferrari JPVM: Network Parallel Computing in Java , 1997 .

[15]  Dennis Gannon,et al.  Java RMI performance and object model interoperability: experiments with Java/HPC++ , 1998 .

[16]  Hermann Hellwagner,et al.  SCI: Scalable Coherent Interface: Architecture and Software for High-Performance Compute Clusters , 1999 .

[17]  Denis Caromel,et al.  Towards seamless computing and metacomputing in Java , 1998 .

[18]  Vladimir Getov,et al.  High-performance parallel programming in Java: exploiting native libraries , 1998 .

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

[20]  John H. Hartman,et al.  Toba: Java for Applications - A Way Ahead of Time (WAT) Compiler , 1997, COOTS.

[21]  Gabriel Antoniu,et al.  DSM-PM2: A Portable Implementation Platform for Multithreaded DSM Consistency Protocols , 2001, HIPS.

[22]  X. Chen,et al.  MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines , 2002 .