|
ABSTRACT
We present two new nonblocking and contention-free implementations of synchronous queues ,concurrent transfer channels in which producers wait for consumers just as consumers wait for producers. Our implementations extend our previous work in dual queues and dual stacks to effect very high-performance handoff. We present performance results on 16-processor SPARC and 4-processor Opteron machines. We compare our algorithms to commonly used alternatives from the literature and from the Java SE 5.0 class java. util. concurrent. SynchronousQueue both directly in synthetic microbenchmarks and indirectly as the core of Java's Thread-PoolExecutor mechanism (which in turn is the core of many Java server programs).Our new algorithms consistently outperform the Java SE 5.0 SynchronousQueue by factors of three in unfair mode and 14 in fair mode; this translates to factors of two and ten for the ThreadPoolExecutor. Our synchronous queues have been adopted for inclusion in Java 6.
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
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
Anna R. Karlin , Kai Li , Mark S. Manasse , Susan Owicki, Empirical studies of competitve spinning for a shared-memory multiprocessor, Proceedings of the thirteenth ACM symposium on Operating systems principles, p.41-55, October 13-16, 1991, Pacific Grove, California, United States
|
 |
10
|
|
 |
11
|
|
| |
12
|
D. Lea. The java.util. concurrent Synchronizer Framework. Science of Computer Programming, 58(3):293--309, Dec. 2005.
|
 |
13
|
Jeremy Manson , William Pugh , Sarita V. Adve, The Java memory model, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.378-391, January 12-14, 2005, Long Beach, California, USA
|
 |
14
|
|
 |
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
|
Mark Moir , Daniel Nussbaum , Ori Shalev , Nir Shavit, Using elimination to implement scalable and lock-free FIFO queues, Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures, July 18-20, 2005, Las Vegas, Nevada, USA
[doi> 10.1145/1073970.1074013]
|
| |
17
|
W.N. Scherer III and M.L. Scott. Nonblocking Concurrent Objects with Condition Synchronization. In Proc. of the 18th Intl. Symp. on Distributed Computing, Amsterdam, The Netherlands, Oct. 2004.
|
| |
18
|
W.N. Scherer III, D. Lea, and M.L. Scott. A Scalable Elimination-based Exchange Channel. In Proc., Workshop on Synchronization and Concurrency in Object-Oriented Languages, San Diego, CA, Oct. 2005. In conjunction with OOPSLA'05.
|
| |
19
|
W.N. Scherer III. Synchronization and Concurrency in User-level Software Systems. Ph.D. dissertation, Dept. of Computer Science, Univ. of Rochester, Jan. 2006.
|
 |
20
|
|
 |
21
|
|
CITED BY 4
|
|
|
|
|
|
|
|
Alexey Gotsman , Byron Cook , Matthew Parkinson , Viktor Vafeiadis, Proving that non-blocking algorithms don't block, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
|
|
|
|