Jade: A Parallel Message-Driven Java

We present Java, a Java-like language with parallel message-driven features. The parallel constructs include parallel classes called Chares and parallel arrays of objects called ChareArrays. Communication with a parallel object occurs through asynchronous method invocation. In the message-driven paradigm, when a method of a Chare or ChareArray is invoked, it continues to completion before any other method of the same parallel object can run. In contrast to Java's runtime compilation, the Java source code is translated to Charm++ source code, which is then compiled and executed on the target machine. The resulting code supports object migration and load-balancing and scales well to large number of processors. Java's standard libraries are not supported.

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

[2]  Laxmikant V. Kalé,et al.  Converse: an interoperable framework for parallel programming , 1996, Proceedings of International Conference on Parallel Processing.

[3]  Laxmikant V. Kalé,et al.  A Malleable-Job System for Timeshared Parallel Machines , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[4]  Laxmikant V. Kalé,et al.  Adaptive Load Balancing for MPI Programs , 2001, International Conference on Computational Science.

[5]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[6]  Katherine Yelick,et al.  Titanium: a high-performance Java dialect , 1998 .

[7]  Michael Philippsen,et al.  More Efficient Object Serialization , 1999, IPPS/SPDP Workshops.

[8]  Michael Philippsen,et al.  A more efficient RMI for Java , 1999, JAVA '99.

[9]  Laxmikant V. Kale,et al.  NAMD2: Greater Scalability for Parallel Molecular Dynamics , 1999 .

[10]  Laxmikant V. Kalé,et al.  NAMD: Biomolecular Simulation on Thousands of Processors , 2002, ACM/IEEE SC 2002 Conference (SC'02).

[11]  Laxmikant V. Kalé,et al.  A Parallel Framework for Explicit FEM , 2000, HiPC.

[12]  Laxmikant V. Kalé,et al.  Design and Implementation of Parallel Java with Global Object Space , 1997, PDPTA.

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

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

[15]  Laxmikant V. Kalé,et al.  Run-Time Support for Adaptive Load Balancing , 2000, IPDPS Workshops.

[16]  Laxmikant V. Kale,et al.  Object-Based Adaptive Load Balancing for MPI Programs∗ , 2000 .

[17]  Jason Maassen,et al.  Efficient Java RMI for parallel programming , 2001, TOPL.

[18]  Jason Maassen,et al.  An efficient implementation of Java's remote method invocation , 1999, PPoPP '99.