skip to main content
10.1145/3332466.3374508acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
poster

Restricted memory-friendly lock-free bounded queues

Published: 19 February 2020 Publication History

Abstract

Multi-producer multi-consumer FIFO queue is one of the fundamental concurrent data structures used in software systems. A lot of progress has been done on designing concurrent bounded and unbounded queues [1--10]. As previous works show, it is extremely hard to come up with an efficient algorithm. There are two orthogonal ways to improve the performance of fair concurrent queues: reducing the number of compare-and-swap (CAS) calls, and making queues more memory-friendly by reducing the number of allocations. The most up-to-date efficient algorithms choose the first path and use more scalable fetch-and-add (FAA) instead of CAS [3, 4, 10]. For the second path, the standard way to design memory-friendly versions is to implement queues on top of arrays [2--4, 10]. For unbounded queues it is reasonable to allocate memory in chunks, constructing a linked queue on them; this approach significantly improves the performance. The bounded queues are more memory-friendly by design: they are represented as a fixed-sized array of elements even in theory. However, most of the bounded queue implementations still have issues with memory allocations --- typically, they either use descriptors [5, 8] or store some additional meta-information along with the elements [1, 6, 7, 9].

References

[1]
Steven Feldman and Damian Dechev. A wait-free multi-producer multi-consumer ring buffer. ACM SIGAPP Applied Computing Review, 15(3):59--71, 2015.
[2]
Anders Gidenstam, Håkan Sundell, and Philippas Tsigas. Cache-aware lock-free queues for multiple producers/consumers and weak memory consistency. In PODC, pages 302--317, 2010.
[3]
Adam Morrison and Yehuda Afek. Fast concurrent queues for x86 processors. In ACM SIGPLAN Notices, volume 48, pages 103--112, 2013.
[4]
Ruslan Nikolaev. A scalable, portable, and memory-efficient lock-free fifo queue. In DISC, 2019.
[5]
Peter Pirkelbauer, Reed Milewicz, and Juan Felipe Gonzalez. A portable lock-free bounded queue. In ICAPP, pages 55--73, 2016.
[6]
Niloufar Shafiei. Non-blocking array-based algorithms for stacks and queues. In ICDCN, pages 55--66, 2009.
[7]
Philippas Tsigas and Yi Zhang. A simple, fast and scalable non-blocking concurrent fifo queue for shared memory multiprocessor systems. In SPAA, pages 134--143, 2001.
[8]
John D Valois. Implementing lock-free queues. In ICPADS, pages 64--69, 1994.
[9]
Dmitry Vyukov. Bounded MPMC queue. http://www.1024cores.net/home/lock-free-algorithms/queues/bounded-mpmc-queue.
[10]
Chaoran Yang and John Mellor-Crummey. A wait-free queue as fast as fetch-and-add. ACM SIGPLAN Notices, 51(8):16, 2016.

Cited By

View all
  • (2024)HUILLY: A Non-Blocking Ingestion Buffer for Timestepped Simulation Analytics2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing (CCGrid)10.1109/CCGrid59990.2024.00022(113-118)Online publication date: 6-May-2024
  • (2022)wCQProceedings of the 34th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3490148.3538572(307-319)Online publication date: 11-Jul-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '20: Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
February 2020
454 pages
ISBN:9781450368186
DOI:10.1145/3332466
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 February 2020

Check for updates

Qualifiers

  • Poster

Funding Sources

Conference

PPoPP '20

Acceptance Rates

PPoPP '20 Paper Acceptance Rate 28 of 121 submissions, 23%;
Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)HUILLY: A Non-Blocking Ingestion Buffer for Timestepped Simulation Analytics2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing (CCGrid)10.1109/CCGrid59990.2024.00022(113-118)Online publication date: 6-May-2024
  • (2022)wCQProceedings of the 34th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3490148.3538572(307-319)Online publication date: 11-Jul-2022

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