Results 1 -
5 of
5
Causal Memory: Definitions, Implementation and Programming
, 1994
"... The abstraction of a shared memory is of growing importance in distributed computing systems. Traditional memory consistency ensures that all processes agree on a common order of all operations on memory. Unfortunately, providing these guarantees entails access latencies that prevent scaling to larg ..."
Abstract
-
Cited by 78 (9 self)
- Add to MetaCart
The abstraction of a shared memory is of growing importance in distributed computing systems. Traditional memory consistency ensures that all processes agree on a common order of all operations on memory. Unfortunately, providing these guarantees entails access latencies that prevent scaling to large systems. This paper weakens such guarantees by defining causal memory, an abstraction that ensures that processes in a system agree on the relative ordering of operations that are causally related. Because causal memory is weakly consistent, it admits more executions, and hence more concurrency, than either atomic or sequentially consistent memories. This paper provides a formal definition of causal memory and gives an implementation for message-passing systems. In addition, it describes a practical class of programs that, if developed for a strongly consistent memory, run correctly with causal memory. College of Computing Georgia Institute of Technology Atlanta, Georgia 30332-0280 This ...
Mixed Consistency: A Model for Parallel Programming (Extended Abstract)
, 1994
"... A general purpose parallel programmingmodel called mixed consistency is developed for distributed shared memory systems. This model combines two kinds of weak memory consistency conditions: causal memory and pipelined random access memory, and provides four kinds of explicit synchronization operatio ..."
Abstract
-
Cited by 26 (4 self)
- Add to MetaCart
A general purpose parallel programmingmodel called mixed consistency is developed for distributed shared memory systems. This model combines two kinds of weak memory consistency conditions: causal memory and pipelined random access memory, and provides four kinds of explicit synchronization operations: read locks, write locks, barriers, and await operations. The resulting suite of memory and synchronization operations can be tailored to solve most programming problems in an efficient manner. Conditions are also developed under which the net effect of programming in this model is the same as programming with sequentially consistent memory. Several examples are included to illustrate the model and the correctness conditions. Keywords: distributed shared memory, memory consistency, concurrency, synchronization.
Programming DEC-Alpha Based Multiprocessors The Easy Way
- Computer Science Department, Technion
, 1990
"... Alpha consistency, a formal definition of the shared memory model of DEC-Alpha based multiprocessors, is defined in the framework of [9]. The definition allows arbitrary out-of-order execution of instructions and is convenient for use by programmers. Several programming techniques that allow to run ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
Alpha consistency, a formal definition of the shared memory model of DEC-Alpha based multiprocessors, is defined in the framework of [9]. The definition allows arbitrary out-of-order execution of instructions and is convenient for use by programmers. Several programming techniques that allow to run programs written assuming sequentially consistent hardware on alpha consistent hardware are presented. First, it is shown that every data race free program runs on an alpha consistent memory as if it was sequentially consistent. Second, it is shown how to transform any non-cooperative solution for the mutual exclusion problem based on sequential consistency into a solution based on alpha consistency. Finally, it is shown that this general method is not optimal; for two well-known mutual exclusion algorithms, a specific analysis of the code yields a more efficient algorithm. 1 Introduction 1.1 Overview Alpha is a novel 64-bit load/store RISC architecture, introduced by Digital Equipment C...
Evaluating Weak Memories with Maya
- IN PROC. OF THE 8TH WORKSHOP ON PARALLEL AND DISTRIBUTED SIMULATION
, 1994
"... Maya is a simulation platform for evaluating the performance of parallel programs on parallel architectures with different memory coherence protocols. Rapid prototyping of different memory protocols supporting varying degrees of coherence is possible and the impact of these protocols on the perfor ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Maya is a simulation platform for evaluating the performance of parallel programs on parallel architectures with different memory coherence protocols. Rapid prototyping of different memory protocols supporting varying degrees of coherence is possible and the impact of these protocols on the performance of application programs can be studied. Implementations of existing weak memories along with some new primitives using Maya are presented. The results of running some user applications are summarized and the impact of weak memories on the efficiency of parallel programs is discussed.
Distributed Parallel Computing in Mermera: Mixing Noncoherent Shared Memories
, 1996
"... Programmers of parallel processes that communicate through shared globally distributed data structures (DDS) face a difficult choice. Either they must explicitly program DDS management, by partitioning or replicating it over multiple distributed memory modules, or be content with a high latency c ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Programmers of parallel processes that communicate through shared globally distributed data structures (DDS) face a difficult choice. Either they must explicitly program DDS management, by partitioning or replicating it over multiple distributed memory modules, or be content with a high latency coherent (sequentially consistent) memory abstraction that hides the DDS' distribution.

