Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3154273.3154306acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicdcnConference Proceedingsconference-collections
research-article

On the Importance of Synchronization Primitives with Low Consensus Numbers

Published: 04 January 2018 Publication History

Abstract

The consensus number of a synchronization primitive is the maximum number of processes for which the primitive can solve consensus. This has been the traditional measure of power of a synchronization primitive. Thus, the compare-and-swap primitive, which has infinite consensus number, is considered most powerful and has been the primitive of choice for implementing concurrent data structures. In this work, we show that the synchronization primitives with low consensus numbers can also be potentially powerful by using them along with the compare-and-swap primitive to design an O (√n) time wait-free and linearizable concurrent queue. The best known time bound for a wait-free and linearizable concurrent queue using only the compare-and-swap primitive is O(n). Here, n is the total number of processes that can access the queue.
The queue object maintains a sequence of elements and supports the operations enqueue(x) and dequeue(). The wait-free property implies that every call to enqueue(x) and dequeue() finishes in a bounded number of steps irrespective of the schedule of other n --1 processes. The linearizable property implies that the enqueue(x) and dequeue() calls appear to be instantaneously applied within the duration of respective calls. We design a wait-free and a linearizable concurrent queue using shared memory registers that support the compare-and-swap primitive and two other primitives of consensus number one and two respectively. The enqueue(x) and dequeue() operations take O (√n) steps each. The total number of registers required are O(nm) of O (max{log n, log m }) bits each, where m is a bound on the total number of enqueue(x) operations.

References

[1]
Yehuda Afek, Dalia Dauber, and Dan Touitou. 1995. Wait-free Made Fast. In 27th Annual ACM Symposium on Theory of Computing (STOC), Las Vegas, Nevada, USA.
[2]
Dan Alistarh, James Aspnes, Keren Censor-Hillel, Seth Gilbert, and Rachid Guerraoui. 2014. Tight Bounds for Asynchronous Renaming. Journal of the ACM (JACM) (2014).
[3]
Matei David. 2005. A Single-Enqueuer Wait-Free Queue Implementation. In 18th International Conference on Distributed Computing (DISC), Cracow, Poland.
[4]
Faith Ellen, Rati Gelashvili, Nir Shavit, and Leqi Zhu. 1990. A Complexity-Based Hierarchy for Multiprocessor Synchronization: {Extended Abstract}. In Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing (PODC), Chicago, IL, USA.
[5]
Faith Ellen, Yossi Lev, Victor Luchangco, and Mark Moir. 2007. SNZI: Scalable NonZero Indicators. In 26th Annual ACM Symposium on Principles of Distributed Computing (PODC), Portland, Oregon.
[6]
Faith Ellen and Philipp Woelfel. 2013. An Optimal Implementation of Fetch-and-Increment. In 27th International Symposium on Distributed Computing (DISC), Jerusalem, Israel.
[7]
Panagiota Fatourou and Nikolaos D. Kallimanis. 2011. A Highly-efficient Wait-free Universal Construction. In 23rd Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), San Jose, California, USA.
[8]
Maurice Herlihy. 1991. Wait-free Synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS) (1991).
[9]
Maurice P. Herlihy and Jeannette M. Wing. 1990. Linearizability: A Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems (TOPLAS) (1990).
[10]
Hybrid Memory Cube Consortium 2015. Hybrid Memory Cube Specification 2.1, Comparison Atomics, Page 68. Hybrid Memory Cube Consortium.
[11]
Intel 2016. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1, Section 8.1.2.2. Intel.
[12]
Prasad Jayanti and Srdjan Petrovic. 2005. Logarithmic-Time Single Deleter, Multiple Inserter Wait-Free Queues and Stacks. In 25th International Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS), Hyderabad, India.
[13]
Prasad Jayanti and Srdjan Petrovic. Jul. Efficient and Practical Constructions of LL/SC Variables. In 22nd Annual Symposium on Principles of Distributed Computing (PODC), Boston, Massachusetts.
[14]
Pankaj Khanchandani and Roger Wattenhofer. 2017. Brief Announcement: Fast Shared Counting using O(n) Compare-and-Swap Registers. In ACM Symposium on Principles of Distributed Computing (PODC), Washington, DC, USA.
[15]
Alex Kogan and Erez Petrank. 2011. Wait-free Queues with Multiple Enqueuers and Dequeuers. In 16th ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), San Antonio, TX, USA.
[16]
Maged M. Michael. 2004. Practical Lock-Free and Wait-Free LL/SC/VL Implementations Using 64-Bit CAS. In 18th International Symposium on Distributed Computing (DISC), Amsterdam, Netherlands.
[17]
Adam Morrison and Yehuda Afek. 2013. Fast Concurrent Queues for x86 Processors. In 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Shenzhen, China.
[18]
Jacob T. Schwartz. 1980. Ultracomputers. ACM Transactions on Programming Languages and Systems (TOPLAS) (1980).
[19]
Chaoran Yang and John Mellor-Crummey. 2016. A Wait-free Queue As Fast As Fetch-and-add. In 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Barcelona, Spain.

Cited By

View all
  • (2024)A wait-free queue with polylogarithmic step complexityDistributed Computing10.1007/s00446-024-00471-737:4(309-334)Online publication date: 17-Aug-2024
  • (2023)A Wait-free Queue with Polylogarithmic Step ComplexityProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594565(124-134)Online publication date: 19-Jun-2023
  • (2021)On Consensus Number 1 Objects2021 IEEE 27th International Conference on Parallel and Distributed Systems (ICPADS)10.1109/ICPADS53394.2021.00115(875-882)Online publication date: Dec-2021
  • Show More Cited By

Index Terms

  1. On the Importance of Synchronization Primitives with Low Consensus Numbers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ICDCN '18: Proceedings of the 19th International Conference on Distributed Computing and Networking
    January 2018
    494 pages
    ISBN:9781450363723
    DOI:10.1145/3154273
    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 the author(s) 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].

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 January 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. concurrent queue
    2. sublinear wait-free
    3. wait-free queue

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    ICDCN '18

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 13 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)A wait-free queue with polylogarithmic step complexityDistributed Computing10.1007/s00446-024-00471-737:4(309-334)Online publication date: 17-Aug-2024
    • (2023)A Wait-free Queue with Polylogarithmic Step ComplexityProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594565(124-134)Online publication date: 19-Jun-2023
    • (2021)On Consensus Number 1 Objects2021 IEEE 27th International Conference on Parallel and Distributed Systems (ICPADS)10.1109/ICPADS53394.2021.00115(875-882)Online publication date: Dec-2021
    • (2020)Two elementary instructions make compare-and-swapJournal of Parallel and Distributed Computing10.1016/j.jpdc.2020.06.005Online publication date: Jun-2020
    • (2019)Two Elementary Instructions Make Compare-and-Swap2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS.2019.00046(365-374)Online publication date: May-2019

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media