Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1122971.1122994acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article

Scalable synchronous queues

Published: 29 March 2006 Publication History

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

[1]
T.E. Anderson, E.D. Lazowska, and H.M. Levy. The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors. IEEE Trans. on Computers, 38(12):1631--1644, Dec. 1989.
[2]
G.R. Andrews. Concurrent Programming: Principles and Practice. Benjamin/Cummings, Redwood City, CA, 1991.
[3]
D.R. Hanson. C Interfaces and Implementations: Techniques for Creating Reusable Software. Addison-Wesley, Menlo Park, CA, 1997.
[4]
D. Hendler, N. Shavit, and L. Yerushalmi. A Scalable Lock-Free Stack Algorithm. In Proc. of the 16th Annual ACM Symp. on Parallelism in Algorithms and Architectures, pages 206--215, Barcelona, Spain, June 2004.
[5]
M. Herlihy, V. Luchangco, and M. Moir. Obstruction-Free Synchronization: Double-Ended Queues as an Example. In Proc. of the 23rd Intl. Conf. on Distributed Computing Systems, Providence, RI, May, 2003.
[6]
M.P. Herlihy and J.M.Wing. Linearizability: ACorrectness Condition for Concurrent Objects. ACM Trans. on Programming Languages and Systems, 12(3):463--492, July 1990.
[7]
M. Herlihy. Wait-Free Synchronization. ACM Trans. on Programming Languages and Systems, 13(1):124--149, Jan. 1991.
[8]
C.A.R. Hoare. Communicating Sequential Processes. Comm. of the ACM, 21(8):666--677, Aug. 1978.
[9]
A.R. Karlin,K. Li, M. S. Manasse, and S. Owicki. Empirical Studies of Competitive Spinning for a Shared-Memory Multiprocessor. In Proc. of the 13th ACM Symp. on Operating Systems Principles, pages 41--55, Pacific Grove, CA, Oct. 1991.
[10]
L. Lamport. A New Solution of Dijkstra's Concurrent Programming Problem. Comm. of the ACM, 17(8):453--455, Aug. 1974.
[11]
L. Lamport. A Fast Mutual Exclusion Algorithm. ACM Trans. on Computer Systems, 5(1):1--11, Feb. 1987.
[12]
D. Lea. The java.util. concurrent Synchronizer Framework. Science of Computer Programming, 58(3):293--309, Dec. 2005.
[13]
J. Manson, W. Pugh, and S. Adve. The Java Memory Model. In Conf. Record of the 32nd ACM Symp. on Principles of Programming Languages, Long Beach, CA, Jan. 2005.
[14]
J.M. Mellor-Crummey and M.L. Scott. Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors. ACM Trans. on Computer Systems, 9(1):21--65, Feb. 1991.
[15]
M.M. Michaeland, M.L. Scott. Simple, Fast, and Practical Non-Blockingand Blocking Concurrent Queue Algorithms. In Proc. of the 15th ACM Symp. on Principles of Distributed Computing, pages 267--275, Philadelphia, PA, May 1996.
[16]
M. Moir, D. Nussbaum, O. Shalev, and N. Shavit. Using Elimination to Implement Scalable and Lock-Free FIFO Queues. In Proc. of the 17th Annual ACM Symp. on Parallelism in Algorithms and Architectures, pages 253--262, LasVegas, NV, July 2005.
[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]
M.L. Scott and W.N. Scherer III. Scalable Queue-Based Spin Locks with Timeout. In Proc. of the 8th ACM Symp. on Principles and Practice of Parallel Programming, Snowbird, UT, June 2001.
[21]
N. Shavit and D. Touitou. Elimination Trees and the Construction of Pools and Stacks. In Proc. of the 7th Annual ACM Symp. on Parallel Algorithms and Architectures, Santa Barbara, CA, July 1995.

Cited By

View all
  • (2022)A Fast Wait-Free Multi-Producers Single-Consumer QueueProceedings of the 23rd International Conference on Distributed Computing and Networking10.1145/3491003.3491004(77-86)Online publication date: 4-Jan-2022
  • (2019)Scalable FIFO Channels for Programming via Communicating Sequential ProcessesEuro-Par 2019: Parallel Processing10.1007/978-3-030-29400-7_23(317-333)Online publication date: 26-Aug-2019
  • (2018)Cache‐aware design of general‐purpose Single‐Producer–Single‐Consumer queuesSoftware: Practice and Experience10.1002/spe.267549:5(748-779)Online publication date: 26-Dec-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '06: Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
March 2006
258 pages
ISBN:1595931899
DOI:10.1145/1122971
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 March 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. contention freedom
  2. dual data structures
  3. dual queue
  4. dual stack
  5. lock freedom
  6. nonblocking synchronization
  7. synchronous queue

Qualifiers

  • Article

Conference

PPoPP06
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)2
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A Fast Wait-Free Multi-Producers Single-Consumer QueueProceedings of the 23rd International Conference on Distributed Computing and Networking10.1145/3491003.3491004(77-86)Online publication date: 4-Jan-2022
  • (2019)Scalable FIFO Channels for Programming via Communicating Sequential ProcessesEuro-Par 2019: Parallel Processing10.1007/978-3-030-29400-7_23(317-333)Online publication date: 26-Aug-2019
  • (2018)Cache‐aware design of general‐purpose Single‐Producer–Single‐Consumer queuesSoftware: Practice and Experience10.1002/spe.267549:5(748-779)Online publication date: 26-Dec-2018
  • (2016)LynxProceedings of the 2016 International Conference on Supercomputing10.1145/2925426.2926274(1-12)Online publication date: 1-Jun-2016
  • (2016)Efficient Distributed Data Structures for Future Many-Core Architectures2016 IEEE 22nd International Conference on Parallel and Distributed Systems (ICPADS)10.1109/ICPADS.2016.0113(835-842)Online publication date: Dec-2016
  • (2015)Modular Verification of Concurrency-Aware LinearizabilityProceedings of the 29th International Symposium on Distributed Computing - Volume 936310.1007/978-3-662-48653-5_25(371-387)Online publication date: 7-Oct-2015
  • (2014)Brief announcementProceedings of the 2014 ACM symposium on Principles of distributed computing10.1145/2611462.2611513(209-211)Online publication date: 15-Jul-2014
  • (2014)Compositional verification of termination-preserving refinement of concurrent programsProceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1145/2603088.2603123(1-10)Online publication date: 14-Jul-2014
  • (2014)A High-Performance IO Engine for SDN ControllersProceedings of the 2014 Third European Workshop on Software Defined Networks10.1109/EWSDN.2014.30(121-122)Online publication date: 1-Sep-2014
  • (2013)Fast and scalable rendezvousingDistributed Computing10.1007/s00446-013-0185-026:4(243-269)Online publication date: 1-Aug-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media