Coherence, Non-coherence and Local Consistency in Distributed Shared Memory for Parallel Computing

The widespread availability of cheap workstations connected by a network has made possible their collective use as a parallel computer to solve large problems. The problem of implementing shared memory on the high latency networks that connect workstations, without suuering severe degradation in memory access times as the number of workstations increases, poses a special challenge. Traditional coherent memories are not scalable to more than a few tens of machines for most applications. Non-coherent memories that promise good scalability properties have been proposed and studied, in both the distributed systems and parallel architectures communities, albeit in the absence of a single unifying formal framework. In this paper we present a formal model, based on partial orders, within which we deene and relate coherent memory and many of the existing non-coherent memories. Our framework enables us to deene the notion of Local Consistency, a new non-coherent memory behavior that we view as the weakest constraint that should be required of shared memory. We brieey argue for mixing coherent and non-coherent memory in the same shared memory system, thus ooering the programmer a choice of memory behaviors at diierent stages of program development or program execution. In a separate paper, we describe Mermera, a system that develops this approach. As evidence of the practical utility of non-coherent memory, we include in an appendix, a proof that Slow memory, a known very weak memory, is suucient for a large class of parallel asynchronous iterative numerical algorithms.

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

[2]  M. Herlihy A quorum-consensus replication method for abstract data types , 1986, TOCS.

[3]  Mosur Ravishankar,et al.  Programming the PLUS Distributed-Memory System , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[4]  Michel Dubois,et al.  Concurrent Miss Resolution in Multiprocessor Caches , 1988, ICPP.

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

[6]  John N. Tsitsiklis,et al.  Parallel and distributed computation , 1989 .

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

[8]  Gérard M. Baudet,et al.  Asynchronous Iterative Methods for Multiprocessors , 1978, JACM.

[9]  John N. Tsitsiklis,et al.  Some aspects of parallel and distributed iterative algorithms - A survey, , 1991, Autom..

[10]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

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

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

[13]  Mustaque Ahamad,et al.  Slow memory: weakening consistency to enhance concurrency in distributed shared memories , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[14]  Christos H. Papadimitriou,et al.  The Theory of Database Concurrency Control , 1986 .

[15]  Robert A. Whiteside,et al.  Implementing Linda for distributed and parallel processing , 1989, ICS '89.

[16]  Jack Dongarra,et al.  A User''s Guide to PVM Parallel Virtual Machine , 1991 .

[17]  Jarek Deminet Experience with Multiprocessor Algorithms , 1982, IEEE Transactions on Computers.

[18]  William E. Weihl,et al.  Multi-version memory: software cache management for concurrent B-trees , 1990, Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990.