Causal Memory: Implementation, Programming Support and Experiences

Distributed Shared Memory (DSM) has become an accepted abstraction for programming distributed systems. Although DSM simpliies the programming of distributed applications, maintaining a consistent shared memory can be expensive. Weakly ordered systems which use synchronization information have been proposed to reduce the frequency of communication between processors. We have implemented a weakly ordered system based on the Causal memory model. We provide language and runtime support which allow programs to run eeciently on Causal memory. Actual implementation results show a signiicant reduction in the number of messages when compared to a system maintaining a consistent shared memory.

[1]  Mustaque Ahamad,et al.  Implementing and programming causal distributed shared memory , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[2]  Ajay Mohindra,et al.  An Evaluation of State Sharing Techniques in Distributed Operating Systems , 1993 .

[3]  Jean-Loup Baer,et al.  Proceedings of the 39th Annual International Symposium on Computer Architecture , 1983, International Symposium on Computer Architecture.

[4]  Gerard Maurice Baudet,et al.  The design and analysis of algorithms for asynchronous multiprocessors. , 1978 .

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

[6]  Mark D. Hill,et al.  A Unified Formalization of Four Shared-Memory Models , 1993, IEEE Trans. Parallel Distributed Syst..

[7]  Michel Dubois,et al.  Delayed consistency and its effects on the miss rate of parallel programs , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[8]  Nicholas Carriero,et al.  How to write parallel programs , 1990 .

[9]  Gil Neiger,et al.  A Characterization of Scalable Shared Memories , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[10]  Mosur Ravishankar,et al.  PLUS: a distributed shared-memory system , 1990, ISCA '90.

[11]  Geoffrey M. Brown Asynchronous multicaches , 1990, Distributed Computing.

[12]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[13]  Willy Zwaenepoel,et al.  Adaptive software cache management for distributed shared memory architectures , 1990, ISCA '90.

[14]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[15]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[16]  Fabienne Boyer A Causal Distributed Shared Memory Based on External Pagers , 1991, USENIX MACH Symposium.

[17]  Yehuda Afek,et al.  A lazy cache algorithm , 1989, SPAA '89.

[18]  Brian N. Bershad,et al.  Midway : shared memory parallel programming with entry consistency for distributed memory multiprocessors , 1991 .

[19]  David R. Cheriton,et al.  Problem-oriented Shared Memory: A Decentralized Approach to Distributed System Design , 1986, IEEE International Conference on Distributed Computing Systems.

[20]  M. Hill,et al.  Weak ordering-a new definition , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[21]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[22]  Alan L. Cox,et al.  Lazy release consistency for software distributed shared memory , 1992, ISCA '92.

[23]  Jayadev Misra Axioms for memory access in asynchronous hardware systems , 1986, TOPL.

[24]  Gil Neiger,et al.  Causal Memory , 1991, WDAG.