Results 1 -
5 of
5
A methodology for implementing highly concurrent data structures
- In 2nd Symp. Principles & Practice of Parallel Programming
, 1990
"... A con.curren.t object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on criticaI sections: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchr ..."
Abstract
-
Cited by 295 (12 self)
- Add to MetaCart
A con.curren.t object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on criticaI sections: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, non-faulty processes will be unable to progress. By contrast, a concurrent object implementation is non-blocking if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait-free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing non-blocking aud wait-free implementations of concurrent objects. The object’s representation and operations are written as st,ylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation usiug novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIM D) architecture in which n processes communicate by applying read, write, and comparekYswa,p operations to a shared memory. 1
Wait-Free Data Structures in the Asynchronous PRAM Model
- In Proceedings of the 2nd Annual Symposium on Parallel Algorithms and Architectures
, 2000
"... In the asynchronous PRAM model, processes communicate by atomically reading and writing shared memory locations. This paper investigates the extent to which asynchronous PRAM permits long-lived, highly concurrent data structures. An implementation of a concurrent object is wait-free if every operati ..."
Abstract
-
Cited by 62 (11 self)
- Add to MetaCart
In the asynchronous PRAM model, processes communicate by atomically reading and writing shared memory locations. This paper investigates the extent to which asynchronous PRAM permits long-lived, highly concurrent data structures. An implementation of a concurrent object is wait-free if every operation will complete in a finite number of steps, and it is k-bounded wait-free, for some k > 0, if every operation will complete within k steps. In the first part of this paper, we show that there are objects with wait-free implementations but no k-bounded wait-free implementations for any k, and that there is an infinite hierarchy of objects with implementations that are k-bounded wait-free but not K-bounded wait-free for some K > k. In the second part of the paper, we give an algebraic characterization of a large class of objects that do have wait-free implementations in asynchronous PRAM, as well as a general algorithm for implementing them. Our tools include simple iterative algorithms for wait-free approximate agreement and atomic snapshot.
Contention in Shared Memory Algorithms
, 1993
"... Most complexitymeasures for concurrent algorithms for asynchronous sharedmemory architectures focus on process steps and memory consumption. In practice, however, performance of multiprocessor algorithms is heavily influenced by contention, the extent to which processes access the same location at t ..."
Abstract
-
Cited by 57 (1 self)
- Add to MetaCart
Most complexitymeasures for concurrent algorithms for asynchronous sharedmemory architectures focus on process steps and memory consumption. In practice, however, performance of multiprocessor algorithms is heavily influenced by contention, the extent to which processes access the same location at the same time. Nevertheless, even though contention is one of the principal considerations affecting the performance of real algorithms on real multiprocessors, there are no formal tools for analyzing the contention of asynchronous shared-memory algorithms. This paper introduces the first formal complexity model for contention in multiprocessors. We focus on the standard multiprocessor architecture in which n asynchronous processes communicate by applying read, write, and read-modify-write operations to a shared memory. We use our model to derive two kinds of results: (1) lower bounds on contention for well known basic problems such as agreement and mutual exclusion, and (2) trade-offs betwe...
The Decidability of Distributed Decision Tasks
- In Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
, 1997
"... ) Maurice Herlihy Computer Science Department Brown University, Providence RI 02912 herlihy@cs.brown.edu Sergio Rajsbaum y Instituto de Matem'aticas U.N.A.M., D.F. 04510, M'exico rajsbaum@servidor.unam.mx Abstract A task is a distributed coordination problem in which each process starts w ..."
Abstract
-
Cited by 14 (5 self)
- Add to MetaCart
) Maurice Herlihy Computer Science Department Brown University, Providence RI 02912 herlihy@cs.brown.edu Sergio Rajsbaum y Instituto de Matem'aticas U.N.A.M., D.F. 04510, M'exico rajsbaum@servidor.unam.mx Abstract A task is a distributed coordination problem in which each process starts with a private input value taken from a finite set, communicates with the other processes by applying operations to shared objects, and eventually halts with a private output value, also taken from a finite set. A protocol is a distributed program that solves a task. A protocol is t-resilient if it tolerates failures by t or fewer processes. A task is solvable in a given model of computation if it has a t-resilient protocol in that model. A set of tasks is decidable in a given model of computation if there exists an effective procedure for deciding whether any task in that set has a t-resilient protocol. This paper gives the first necessary and sufficient conditions for task decidability in ...
The Decidability of Distributed Decision Tasks
- In Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
, 1997
"... ) Maurice Herlihy Computer Science Department Brown University, Providence RI 02912 herlihy@cs.brown.edu Sergio Rajsbaum y Instituto de Matem'aticas U.N.A.M., D.F. 04510, M'exico rajsbaum@servidor.unam.mx Abstract A task is a distributed coordination problem in which each process starts w ..."
Abstract
- Add to MetaCart
) Maurice Herlihy Computer Science Department Brown University, Providence RI 02912 herlihy@cs.brown.edu Sergio Rajsbaum y Instituto de Matem'aticas U.N.A.M., D.F. 04510, M'exico rajsbaum@servidor.unam.mx Abstract A task is a distributed coordination problem in which each process starts with a private input value taken from a finite set, communicates with the other processes by applying operations to shared objects, and eventually halts with a private output value, also taken from a finite set. A protocol is a distributed program that solves a task. A protocol is t-resilient if it tolerates failures by t or fewer processes. A task is solvable in a given model of computation if it has a t-resilient protocol in that model. A set of tasks is decidable in a given model of computation if there exists an effective procedure for deciding whether any task in that set has a t-resilient protocol. This paper gives the first necessary and sufficient conditions for task decidability in ...

