Parallel application experience with replicated method invocation

We describe and evaluate a new approach to object replication in Java, aimed at improving the performance of parallel programs. Our programming model allows the programmer to define groups of objects that can be replicated and updated as a whole, using reliable, totally‐ordered broadcast to send update methods to all machines containing a copy. The model has been implemented in the Manta highperformance Java system. We evaluate system performance both with microbenchmarks and with a set of five parallel applications. For the applications, we also evaluate ease of programming, compared to RMI implementations. We present performance results for a Myrinet‐based workstation cluster as well as for a wide‐area distributed system consisting of four such clusters. The microbenchmarks show that updating a replicated object on 64 machines only takes about three times the RMI latency in Manta. Applications using Manta's object replication mechanism perform at least as fast as manually optimized versions based on RMI, while keeping the application code as simple as with naive versions that use shared objects without taking locality into account. Using a replication mechanism in Manta's runtime system enables several unmodified applications to run efficiently even on the wide‐area system. Copyright © 2001 John Wiley & Sons, Ltd.

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

[2]  Alan L. Cox,et al.  TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems , 1994, USENIX Winter.

[3]  Alan L. Cox,et al.  Runtime Support for Distributed Sharing in Strongly-Typed Languages , 1999 .

[4]  Jason Maassen,et al.  Wire-area parallel computing in Java , 1999, JAVA '99.

[5]  Jason Maassen,et al.  Wide-area parallel programming using the remote method invocation model , 2000, Concurr. Pract. Exp..

[6]  Henri E. Bal,et al.  Synchronizing Operations on Multiple Objects , 1998, IPPS/SPDP Workshops.

[7]  Satoshi Hirano,et al.  Bayanihan: building and studying web-based volunteer computing systems using Java , 1999, Future Gener. Comput. Syst..

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

[9]  Jason Maassen,et al.  Wide‐area parallel programming using the remote method invocation model , 2000 .

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

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

[12]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[13]  Rachid Guerraoui,et al.  Building Reliable Client-Server Software Using Actively Replicated Objects , 1995 .

[14]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.

[15]  Henri E. Bal,et al.  Sensitivity of parallel applications to large differences in bandwidth and latency in two-layer interconnects , 1999, Proceedings Fifth International Symposium on High-Performance Computer Architecture.

[16]  Henri E. Bal,et al.  MagPIe: MPI's collective communication operations for clustered wide area systems , 1999, PPoPP '99.

[17]  Geoffrey C. Fox,et al.  The Gateway system: uniform web based access to remote resources , 2000 .

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

[19]  John T. Stasko,et al.  Robust state sharing for wide area distributed applications , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[20]  Henri E. Bal,et al.  Optimizing parallel applications for wide-area clusters , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

[21]  Michael Philippsen,et al.  JavaParty - Transparent Remote Objects in Java , 1997, Concurr. Pract. Exp..

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

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

[24]  Tim Brecht,et al.  Ajents: towards an environment for parallel, distributed and mobile Java applications , 1999, JAVA '99.

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

[26]  Michael Philippsen,et al.  A more efficient RMI , 1999 .

[27]  George F. Riley,et al.  Efficient Implementation of Java Remote Method Invocation (RMI) , 1998, COOTS.

[28]  Chris J. Scheiman,et al.  SuperWeb: research issues in Java‐based global computing , 1997 .

[29]  Geoffrey C. Fox,et al.  MPI for Java: position document and draft API specification , 1998 .

[30]  Peter R. Cappello,et al.  Javelin++: scalability issues in global computing , 1999, JAVA '99.

[31]  Henri E. Bal,et al.  User-Level Network Interface Protocols , 1998, Computer.

[32]  Vijay Karamcheti,et al.  Object views: language support for intelligent object caching in parallel and distributed computations , 1999, OOPSLA '99.

[33]  Henri E. Bal,et al.  Distributed Shared Memory Management for Java , 1999 .

[34]  JavaPascale Launay,et al.  The Do ! project : distributed programming using , 1998 .

[35]  Jim Waldo Remote procedure calls and Java Remote Method Invocation , 1998, IEEE Concurr..

[36]  Bronis R. de Supinski,et al.  Accurately measuring MPI broadcasts in a computational grid , 1999, Proceedings. The Eighth International Symposium on High Performance Distributed Computing (Cat. No.99TH8469).

[37]  Henri E. Bal,et al.  Performance evaluation of the Orca shared-object system , 1998, TOCS.

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

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