Results 1 - 10
of
11
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 ...
Hundreds of Impossibility Results for Distributed Computing
- Distributed Computing
, 2003
"... We survey results from distributed computing that show tasks to be impossible, either outright or within given resource bounds, in various models. The parameters of the models considered include synchrony, fault-tolerance, different communication media, and randomization. The resource bounds refe ..."
Abstract
-
Cited by 32 (4 self)
- Add to MetaCart
We survey results from distributed computing that show tasks to be impossible, either outright or within given resource bounds, in various models. The parameters of the models considered include synchrony, fault-tolerance, different communication media, and randomization. The resource bounds refer to time, space and message complexity. These results are useful in understanding the inherent difficulty of individual problems and in studying the power of different models of distributed computing.
Improving Performance by Use of Adaptive Objects: Experimentation with a Configurable Multiprocessor Thread Package
- In Proc. of the second International Symposium on High Performance Distributed Computing
, 1993
"... Operating system kernels typically offer a fixed set of mechanisms and primitives. However, recent research shows that the attainment of high performance for a variety of parallel applications may require the availability of variants of existing primitives or additional low-level mechanisms best sui ..."
Abstract
-
Cited by 24 (16 self)
- Add to MetaCart
Operating system kernels typically offer a fixed set of mechanisms and primitives. However, recent research shows that the attainment of high performance for a variety of parallel applications may require the availability of variants of existing primitives or additional low-level mechanisms best suited for specific applications. One approach to addressing this need is to offer an adaptable and extensible operating system kernel. In this paper, we present a model for adaptive objects and associated mechanisms which may be used for the development of high performance operating system kernels for parallel and distributed systems. We use the model to implement a class of multiprocessor locks namely, adaptive locks which adapt themselves according to user-provided adaptation policies to suit any application locking pattern. Using a well-known multiprocessor application, the Travelling Sales Person program, we demonstrate the performance advantage of adaptive locks over existing locks. Colle...
Experiments with Configurable Locks for Multiprocessors
- In Proc. of the twenty second International Conference on Parallel Processing
, 1993
"... Operating system kernels typically offer a fixed set of mechanisms and primitives. However, recent research shows that the attainment of high performance for a variety of parallel applications may require the availability of variants of existing primitives or additional low-level mechanisms. One app ..."
Abstract
-
Cited by 13 (10 self)
- Add to MetaCart
Operating system kernels typically offer a fixed set of mechanisms and primitives. However, recent research shows that the attainment of high performance for a variety of parallel applications may require the availability of variants of existing primitives or additional low-level mechanisms. One approach to solve this problem is to offer a lightweight, reconfigurable and extensible operating system kernel. An application may configure it to suit its needs, including the selection of appropriate low-level policies, the construction of new primitives on top of the existing ones or the extension with additional primitives. In this paper, we investigate kernel configurability and extensibility for a specific class of operating system primitives: those used for task or thread synchronization. We present an implementation of multiprocessor locks that can be reconfigured statically and dynamically. In addition, we develop a representation for the lock abstraction and an associated reconfigura...
Overview of distributed shared memory
- Trinity College Dublin
, 1998
"... So much has already been written about everything that you can't nd out anything about it. | James Thurber, Lanterns and Lances (1961) Loosely-coupled distributed systems haveevolved using message passing as the main paradigm for sharing information. Other paradigms used in loosely-coupled distribut ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
So much has already been written about everything that you can't nd out anything about it. | James Thurber, Lanterns and Lances (1961) Loosely-coupled distributed systems haveevolved using message passing as the main paradigm for sharing information. Other paradigms used in loosely-coupled distributed systems, such as rpc, are usually implemented on top of an underlying message-passing system. On the other hand, in tightly-coupled architectures, such asmulti-processor machines, the paradigm is usually based on shared memory with its attractively simple programming model. The shared-memory paradigm has recently been extended for use in more loosely-coupled architectures and is known as distributed shared memory (dsm [153, 178,58]) in this context. This chapter discusses some of the issues involved in the design and implementation of such adsm in loosely-coupled distributed systems and brie y discusses related work in other elds. In dsm systems, processes share data transparently across node boundaries � data faulting, location, and movement are handled by thedsm system. Among other things, this allows parallel programs designed to use the shared-memory abstraction to execute without modi cation on a
On Distributed Object Checkpointing and Recovery
- In Proceedings of the ACM Symposium on Principles of Distributed Computing
, 1995
"... Recovery by checkpointing on distributed shared memory systems is investigated in this paper. The notion of consistent global states on a sequentially consistent shared memory system is defined. We investigate how consistent checkpoints can be obtained in these systems. In addition, a novel lazy che ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Recovery by checkpointing on distributed shared memory systems is investigated in this paper. The notion of consistent global states on a sequentially consistent shared memory system is defined. We investigate how consistent checkpoints can be obtained in these systems. In addition, a novel lazy checkpointing approach is proposed. It allows a controlled degree of concurrency and, at the same time, limits the amount of rollback propagation during recovery. Correctness requirements for efficient checkpointing are explored first and algorithms satisfying the requirements are developed subsequently. Several interesting properties of checkpointing on distributed shared memory systems are discovered. In particular, we show that for low levels of laziness, one can achieve better concurrency with more stable storage. 1 Introduction Among various programming paradigms, shared memory programming is relatively easier because of its good abstraction of communication and synchronization. Low cost...
Distributed Shared Abstractions (DSA) on Multiprocessors
- IEEE Transactions on Software Engineering
, 1993
"... ions (DSA) on Multiprocessors Christian Cl'emen¸con (clemenco@lse.epfl.ch) Bodhisattwa Mukherjee (bodhi@watson.ibm.com) Karsten Schwan (schwan@cc.gatech.edu) GIT--CC--93/25 Abstract Any parallel program has abstractions that are shared by the program's multiple processes, including data structure ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
ions (DSA) on Multiprocessors Christian Cl'emen¸con (clemenco@lse.epfl.ch) Bodhisattwa Mukherjee (bodhi@watson.ibm.com) Karsten Schwan (schwan@cc.gatech.edu) GIT--CC--93/25 Abstract Any parallel program has abstractions that are shared by the program's multiple processes, including data structures containing shared data, code implementing operations like global sums or minima, type instances used for process synchronization or communication, etc. Such shared abstractions can considerably affect the performance of parallel programs, on both distributed and shared memory multiprocessors. As a result, their implementation must be efficient, and such efficiency should be achieved without unduly compromising program portability and maintainability. Unfortunately, efficiency and portability can be at cross-purposes, since high performance typically requires changes in the representation of shared abstractions across different parallel machines. The primary contribution of the DSA library ...
Evaluation of Causal Distributed Shared Memory for Data-race-free Programs
, 1994
"... Distributed Shared Memory (DSM) is becoming an accepted abstraction for programming distributed systems. Although DSM could simplify the programming of distributed applications, maintaining a consistent view of shared memory operations across processors in a distributed system can be expensive. The ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
Distributed Shared Memory (DSM) is becoming an accepted abstraction for programming distributed systems. Although DSM could simplify the programming of distributed applications, maintaining a consistent view of shared memory operations across processors in a distributed system can be expensive. The causal consistency model of DSM can allow more efficient implementations of DSM because it requires that only causally ordered memory operations be viewed in the same order at different processors. Also, weakly ordered systems have been proposed which advocate the use of synchronization information to reduce the frequency of communication between processors. We have implemented a system that exploits both the weaker consistency of causal memory and the synchronization information used in weakly ordered systems. Consistency is ensured by locally invalidating data that is suspected to be causally overwritten and this is only done when certain synchronization operations complete at a processor...

