Parallel Languages/Paradigms: Parallel Java
We were one of the first groups to realize the potential of Java for parallel computing, and produced one of the first implementations of a parallel extension to Java. The parallel extension provides efficient, dynamic creation of remote objects and object groups. The language constructs are based on those of Charm++. The implementation is based on Converse interoperability layer that allows the parallel Java programs to incorporate libraries written on top of Converse.

The remote objects are ordinary Java objects with their interfaces known to the Java interface translator. The interface translator generates proxy wrappers which could be used for asynchronous remote method invocations on remote objects. An object group is a group of objects referred to by a unique name, where each object within the group is referred to as the group branch, and exists on a distinct processor. A remote entry invocation on an object group corresponds to a message broadcast to all the processors.

Our extension does not require any modification to the Java compiler or the Java Virtual Machine. It uses the Java Native Interface (JNI), and the reflection and invocation API. Our preliminary performance results indicate that our remote method invocation is much faster than Java's RMI facility.
People
Papers/Talks
03-02
2003
[Paper]
Jade: A Parallel Message-Driven Java [Workshop on Java in Computational Science at ICCS 2003]
97-02
1997
[Paper]
Design and Implementation of Parallel Java with Global Object Space [CPDPTA 1997]