Java-Based DSM with Object-Level Coherence Protocol Selection

This paper describes a Java-based distributed shared memory system (DSM) that simultaneously supports multiple coherence protocols. Coherence is enforced at the object level, and programmers can select the desired policy at object-creation time. Our work extends the Aleph Toolkit [1], a framework for distributed computing in Java. Since Aleph and our extensions are written in pure Java, the system is completely portable and can leverage immediately off of future improvements in the JDK. We demonstrate that a multiple-writer protocol that we added to the Toolkit outperforms existing Aleph protocols for some applications, and that a combination of protocols can provide performance superior to that resulting from the use of a single coherence scheme.

[1]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[2]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

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

[4]  Randy H. Katz,et al.  The effect of sharing on the cache and bus performance of parallel programs , 1989, ASPLOS III.

[5]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[6]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[7]  Henri E. Bal,et al.  Runtime optimizations for a Java DSM implementation , 2001, JGI '01.

[8]  James R. Larus,et al.  Fine-grain access control for distributed shared memory , 1994, ASPLOS VI.

[9]  Kourosh Gharachorloo,et al.  Shasta: a low overhead, software-only approach for supporting fine-grain shared memory , 1996, ASPLOS VII.

[10]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[11]  Peter J. Keleher,et al.  The relative importance of concurrent writers and weak consistency models , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[12]  Alan L. Cox,et al.  A comparison of entry consistency and lazy release consistency implementations , 1996, Proceedings. Second International Symposium on High-Performance Computer Architecture.

[13]  Brian N. Bershad,et al.  The Midway distributed shared memory system , 1993, Digest of Papers. Compcon Spring.

[14]  Maurice Herlihy,et al.  The Aleph Toolkit: Support for Scalable Distributed Shared Objects , 1999, CANPC.

[15]  Peter J. Keleher,et al.  Locality and performance of page- and object-based DSMs , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

[16]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[17]  Kirk L. Johnson,et al.  CRL: high-performance all-software distributed shared memory , 1995, SOSP.

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

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

[20]  Maurice Herlihy,et al.  A tale of two directories: implementing distributed shared objects in Java , 1999, JAVA '99.