Room synchronizations
- 3 July 2001
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 122-133
- https://doi.org/10.1145/378580.378605
Abstract
We present a class of synchronization called room synchronizations and show how this class can be used to implement asynchronous parallel queues and stacks with constant time access (assuming a fetch-and-add operation). The room synchronization problem involves supporting a set of m mutually exclusive “rooms” where any number of users can execute code simultaneously in any one of the rooms, but no two users can simultaneously execute code in separate rooms. Users asynchronously request permission to enter specified rooms, and neither the arrival time nor the arrival order nor the desired room of such requests are known ahead of time. We describe an algorithm for room synchronizations, and prove it satisfies a number of desirable properties. We have implemented our algorithm on a Sun UltraEnterprise 10000 multiprocessor. We present experimental results comparing an implementation of a parallel stack using room synchronizations to one using locks, demonstrating a significant scalability advantage for room synchronizations.Keywords
This publication has 19 references indexed in Scilit:
- Effective fine-grain synchronization for automatically parallelized programs using optimistic synchronization primitivesACM Transactions on Computer Systems, 1999
- Software transactional memoryDistributed Computing, 1997
- Elimination trees and the construction of pools and stacksPublished by Association for Computing Machinery (ACM) ,1995
- Lock-free garbage collection for multiprocessorsPublished by Association for Computing Machinery (ACM) ,1991
- Wait-free synchronizationACM Transactions on Programming Languages and Systems, 1991
- A bridging model for parallel computationCommunications of the ACM, 1990
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- Distributed FIFO allocation of identical resources using small shared spaceACM Transactions on Programming Languages and Systems, 1989
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983
- A new solution of Dijkstra's concurrent programming problemCommunications of the ACM, 1974