| Using elimination to implement scalable and lock-free FIFO queues |
| Full text |
Pdf
(196 KB)
|
| Source
|
ACM Symposium on Parallel Algorithms and Architectures
archive
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
table of contents
Las Vegas, Nevada, USA
SESSION: Joint session
table of contents
Pages: 253 - 262
Year of Publication: 2005
ISBN:1-58113-986-1
|
|
Authors
|
|
Mark Moir
|
Sun Microsystems Laboratories, Burlington, MA
|
|
Daniel Nussbaum
|
Sun Microsystems Laboratories, Burlington, MA
|
|
Ori Shalev
|
Sun Microsystems Laboratories, Burlington, MA and Tel Aviv University, Tel Aviv, Israel
|
|
Nir Shavit
|
Sun Microsystems Laboratories, Burlington, MA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 9, Downloads (12 Months): 76, Citation Count: 5
|
|
|
ABSTRACT
This paper shows for the first time that elimination, a scaling technique formerly applied only to counters and LIFO structures, can be applied to FIFO data structures, specifically, to linearizable FIFO queues. We show how to transform existing nonscalable FIFO queue implementations into scalable implementations using the elimination technique, while preserving lock-freedom and linearizablity.We apply our transformation to the FIFO queue algorithm of Michael and Scott, which is included in the Java™ Concurrency Package. Empirical evaluation on a state-of-the-art CMT multiprocessor chip shows that by using elimination as a backoff technique for the Michael and Scott queue algorithm, we can achieve comparable performance at low loads, and improved scalability as load increases.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
W. Aiello, C. Busch, M. Herlihy, M. Mavronicolas, N. Shavit, and D. Touitou. Supporting increment and decrement operations in balancing networks. Lecture Notes in Computer Science, 1563:393--403, 1999.
|
| |
3
|
|
 |
4
|
James R. Goodman , Mary K. Vernon , Philip J. Woest, Efficient synchronization primitives for large-scale cache-coherent multiprocessors, Proceedings of the third international conference on Architectural support for programming languages and operating systems, p.64-75, April 03-06, 1989, Boston, Massachusetts, United States
|
| |
5
|
A. Gottlieb, R. Grishman, C. Kruskal, K. McAuliffe, L. Rudolph, and M. Snir. The NYU ultracomputer - designing an MIMD parallel computer. IEEE Transactions on Computers, C-32(2):175--189, February 1984.
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
E. Ladan-Mozes and N. Shavit. An optimistic approach to lock-free fifo queues. In proceedings of the 18th International Conference on Distributed Computing (DISC), pages 117--131. Springer-Verlag GmbH, 2004.
|
 |
12
|
|
| |
13
|
D. Lea. The java concurrency package (JSR-166). http://gee.cs.oswego.edu/dl/concurrency-interest/index.html.
|
| |
14
|
J. M. Mellor-Crummey. Concurrent queues: Practical fetch-and-φ algorithms. Technical Report Technical Report 229, University of Rochester, November 1987.
|
 |
15
|
Maged M. Michael , Michael L. Scott, Simple, fast, and practical non-blocking and blocking concurrent queue algorithms, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.267-275, May 23-26, 1996, Philadelphia, Pennsylvania, United States
[doi> 10.1145/248052.248106]
|
 |
16
|
|
| |
17
|
S. Prakash, Y.-H. Lee, and T. Johnson. Non-blocking algorithms for concurrent data structures. Technical Report 91--002, Department of Information Sciences, University of Florida, 1991.
|
| |
18
|
|
| |
19
|
W. N. Scherer and M. L. Scott. Nonblocking concurrent data structures with condition synchronization. In Proceedings of the 18th International Symposium on DIStributed Computing, pages 174--187, Berlin, Heidelberg, New York, October 2004. Springer.
|
| |
20
|
N. Shavit and D. Touitou. Elimination trees and the construction of pools and stacks. Theory of Computing Systems, 30:645--670, 1997.
|
| |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, April 1986.
|
| |
25
|
J. Valois. Implementing lock-free queues. In Proceedings of the Seventh International Conference on Parallel and Distributed Computing Systems, pages 64--69, 1994.
|
CITED BY 5
|
|
|
|
William N. Scherer, III , Doug Lea , Michael L. Scott, Scalable synchronous queues, Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, March 29-31, 2006, New York, New York, USA
|
|
|
|
|
|
|
|
|