A wait-free queue as fast as fetch-and-add

Author:

Yang Chaoran1,Mellor-Crummey John1

Affiliation:

1. Rice University

Abstract

Concurrent data structures that have fast and predictable performance are of critical importance for harnessing the power of multicore processors, which are now ubiquitous. Although wait-free objects, whose operations complete in a bounded number of steps, were devised more than two decades ago, wait-free objects that can deliver scalable high performance are still rare. In this paper, we present the first wait-free FIFO queue based on fetch-and-add (FAA). While compare-and-swap (CAS) based non-blocking algorithms may perform poorly due to work wasted by CAS failures, algorithms that coordinate using FAA, which is guaranteed to succeed, can in principle perform better under high contention. Along with FAA, our queue uses a custom epoch-based scheme to reclaim memory; on x86 architectures, it requires no extra memory fences on our algorithm's typical execution path. An empirical study of our new FAA-based wait-free FIFO queue under high contention on four different architectures with many hardware threads shows that it outperforms prior queue designs that lack a wait-free progress guarantee. Surprisingly, at the highest level of contention, the throughput of our queue is often as high as that of a microbenchmark that only performs FAA. As a result, our fast wait-free queue implementation is useful in practice on most multi-core systems today. We believe that our design can serve as an example of how to construct other fast wait-free objects.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Reference21 articles.

1. Performance issues in non-blocking synchronization on shared-memory multiprocessors

2. Lecture Notes in Computer Science;Anderson J.,1995

3. Reclaiming Memory for Lock-Free Data Structures

4. A universal construction for wait-free transaction friendly data structures

5. E. W. Dijkstra. Solution of a problem in concurrent programming control. Commun. ACM 8(9):569-- Sept. 1965. doi: 10.1145/365559. 365617. 10.1145/365559.365617 E. W. Dijkstra. Solution of a problem in concurrent programming control. Commun. ACM 8(9):569-- Sept. 1965. doi: 10.1145/365559. 365617. 10.1145/365559.365617

Cited by 14 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Wait-free Trees with Asymptotically-Efficient Range Queries;2024 IEEE International Parallel and Distributed Processing Symposium (IPDPS);2024-05-27

2. Memory Bounds for Concurrent Bounded Queues;Proceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2024-02-20

3. Diciclo: Flexible User-level Services for Efficient Multitenant Isolation;ACM Transactions on Computer Systems;2023-12-30

4. CQS: A Formally-Verified Framework for Fair and Abortable Synchronization;Proceedings of the ACM on Programming Languages;2023-06-06

5. The State-of-the-Art LCRQ Concurrent Queue Algorithm Does NOT Require CAS2;Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2023-02-21

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3