next up previous contents
Next: Javelin Up: Parallel Computing Environments for Previous: Parallel Computing Environments for   Contents


JavaParty

The JavaParty [#!JAVAPARTY!#] system of the University of Karlsruhe, Germany, provides a mechanism for parallel cluster programming in Java. JavaParty adds remote objects to Java purely by declaration avoiding disadvantages of explicit socket communication and the programming overhead of RMI. The remote keyword is used to identify which objects can be called remotely. JavaParty is location transparent, i.e., the programmer does not need to map remote objects and remote threads to specific nodes of the network; compiler and runtime system deal with locality and communication optimization.

JavaParty is implemented by a pre-processing phase added to the Java compilers, EspressoGrinder [#!ESPRESSO!#] and Pizza [#!PIZZA!#]. JavaParty code is transformed into regular Java code plus RMI hooks. The resulting RMI portions are then fed into RMI compiler (stub and skeleton generator).

For example, the following program fragment

       remote class B {
           T x = I;           // instance variable
           T foo(V z) { P }   // method
       }
may generate
       interface B_intf extends RemoteIntf {...}
       class B_impl extends RemoteInstance implements B_intf {
           T x = I;           // instance variable
           public T foo(V z) throws RemoteException {  // method
               toRemote(P)
           }
       }

JavaParty is important contribution to research on Java-based parallel computing. Compared to approach in this dissertation, we expect to suffer from some unavoidable overhead from the RMI mechanism, relative to direct message-passing. Also there is relatively little evidence that the remote procedure call approach is actually convenient for SPMD programming.


next up previous contents
Next: Javelin Up: Parallel Computing Environments for Previous: Parallel Computing Environments for   Contents
Bryan Carpenter 2004-06-09