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

DCAS is not a silver bullet for nonblocking algorithm design

Published: 27 June 2004 Publication History

Abstract

Despite years of research, the design of efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare-and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated the utility of double-compare-and-swap (DCAS)--a generalisation of CAS that supports atomic access to two memory locations -- in overcoming these problems. We summarise recent research in this direction and present a detailed case study concerning a previously published nonblocking DCAS-based double-ended queue implementation. Our summary and case study clearly show that DCAS does not provide a silver bullet for nonblocking synchronisation. That is, it does not make the design and verification of even mundane nonblocking data structures with desirable properties easy. Therefore, our position is that while slightly more powerful synchronisation primitives can ave a profound effect on ease of algorithm design and verification, DCAS does not provide sufficient additional power over CAS to justify supporting it in hardware.

References

[1]
O. Agesen, D. Detlefs, C. H. Flood, A. Garthwaite, P. Martin, M. Moir, N. Shavit, and Guy L. Steele Jr. DCAS-based concurrent deques.In Theory of Computing Systems, volume 35, 2002.
[2]
N. S. Arora, B. Blumofe, and C. G. Plaxton. Tread scheduling for multiprogrammed multiprocessors. In Proceedings of the 10th Annual ACM Symposium on Parallel Algorithms and Architectures, 1998.
[3]
D. Detlefs, C. H. Flood, A. Garthwaite, P. Martin, N. Shavit, and G.L. Steele Jr. Even better DCAS-based concurrent deques. In Proceedings of the 14th International Symposium on Distributed Computing, pages 59--73, 2000.
[4]
D. Detlefs, P. Martin, M. Moir, and G. L. Steele, Jr. Lock-free reference counting. In Proceedings of the 20th Annual ACM Symposium on Principles of Distributed Computing, August 2001.
[5]
S. Doherty. Modelling and verifying non-blocking algorithms that use dynamically allocated memory. Master's thesis, Victoria University Wellington, April 2003. http://www.mcs.vuw.ac.nz/sdoherty
[6]
M. Greenwald. Two-handed emulation: How to build non-blocking implementations of complex data structures using DCAS. In Proceedings of the 21st Annual Symposium on Principles of Distributed Computing, 2002.
[7]
M. Greenwald and D. Cheriton. The synergy between non-blocking synchronization and operating system structure. In Proceedings of the 2nd Symposium on Operating System Design and Implementation, pages 123--136, 1996.
[8]
M. B. Greenwald. Non-Blocking Synchronisation and System Design. PhD thesis, Stanford University, August 1999.
[9]
T. Harris and K. Fraser. Language support for lightweight transactions. In Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003.
[10]
T. L. Harris, K. Fraser, and I. A. Pratt. A practical multi-word compare-and-swap operation. In Proceedings of the 14th International Conference on Distributed Computing, 2002.
[11]
M. Herlihy. Wait-free sync ronization. ACM Transactions on Programming Languages and Systems, 11(1):124--149, January 1991.
[12]
M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free software NCAS and transactional memory. Unpublished manuscript, 2002.
[13]
M. Herlihy, V. Luchangco, and M. Moir. The repeat offender problem: A mec anism for supporting dynamic-sized, lock-free data structure. In Proceedings of the 16th International Symposium on Distributed Computing, October 2002.
[14]
M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free synchronization: Double-ended queues as an example. In Proceedings of the IEEE International Conference on Distributed Computing Systems, 2003.
[15]
M. Herlihy, V. Luchangco, M. Moir, and W. Scherer. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd Annual ACM Symposium on Principles of Distributed Computing, 2003.
[16]
M. Herlihy and J.E.B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of 20th Annual International Symposium on Computer Architecture, 1993.
[17]
M. P. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463--492, November 1990.
[18]
D. E. Knuth. The Art of Computer Programming: Fundamental Algorithms. Addison-Wesley, 2nd edition, 1968.
[19]
V. Luchangco, M. Moir, and N. Shavit. Nonblocking k compare-single-swap. In Proceedings of the ACM Symposium on Parallel Architectures and Algorithms, 2003.
[20]
N. Lynch. Distributed Algorithms. Morgan Kaufmann, San Mateo, CA, 1996.
[21]
N. Lync and M. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing, pages 137--151, August 1987.
[22]
N. A. Lync and F. W. Vaandrager. Forward and backward simulations. part I: untimed systems. Information and Computation, 121(2):214--233, September 1995.
[23]
P. A. Martin, M. Moir, and Guy L. Steele, Jr. DCAS-based concurrent deques supporting bulk allocation. Technical Report TR-2002-111, Sun Microsystems Laboratories, 2002.
[24]
H. Massalin and C. Pu. A lock-free multiprocessor OS kernel. Technical report, Columbia University, New York, June 1991.
[25]
M. Michael and M. Scott. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. Journal of Parallel and Distributed Computing, 51(1):1--26,1998.
[26]
S. Prakash, Y. Lee, and T. Johnson. A non-blocking algorithm for shared queues using compare-and-swap. IEEE Transactions on Computers, 43(5):548--559, 1994.
[27]
N. Shavit and D. Touitou. Software transactional memory.In Distributed Computing, Special Issue, volume 10, pages 99--116, 1997.
[28]
The PVS Specification and Verification System, http://pvs.csl.sri.com/.
[29]
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, April 1986.

Cited By

View all
  • (2024)Scenario-Based Proofs for Concurrent ObjectsProceedings of the ACM on Programming Languages10.1145/36498578:OOPSLA1(1294-1323)Online publication date: 29-Apr-2024
  • (2024)Achieving Forward Progress Guarantee in Small Hardware TransactionsIEEE Computer Architecture Letters10.1109/LCA.2024.337099223:1(53-56)Online publication date: Jan-2024
  • (2023)AutoHyper: Explicit-State Model Checking for HyperLTLTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-30823-9_8(145-163)Online publication date: 22-Apr-2023
  • Show More Cited By

Index Terms

  1. DCAS is not a silver bullet for nonblocking algorithm design

                          Recommendations

                          Comments

                          Information & Contributors

                          Information

                          Published In

                          cover image ACM Conferences
                          SPAA '04: Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
                          June 2004
                          332 pages
                          ISBN:1581138407
                          DOI:10.1145/1007912
                          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: 27 June 2004

                          Permissions

                          Request permissions for this article.

                          Check for updates

                          Author Tags

                          1. DCAS
                          2. concurrent data structures
                          3. double-compare-and-swap
                          4. linked lists
                          5. lock-free
                          6. multiprocessors
                          7. nonblocking synchronization

                          Qualifiers

                          • Article

                          Conference

                          SPAA04

                          Acceptance Rates

                          Overall Acceptance Rate 447 of 1,461 submissions, 31%

                          Contributors

                          Other Metrics

                          Bibliometrics & Citations

                          Bibliometrics

                          Article Metrics

                          • Downloads (Last 12 months)13
                          • Downloads (Last 6 weeks)0
                          Reflects downloads up to 12 Sep 2024

                          Other Metrics

                          Citations

                          Cited By

                          View all
                          • (2024)Scenario-Based Proofs for Concurrent ObjectsProceedings of the ACM on Programming Languages10.1145/36498578:OOPSLA1(1294-1323)Online publication date: 29-Apr-2024
                          • (2024)Achieving Forward Progress Guarantee in Small Hardware TransactionsIEEE Computer Architecture Letters10.1109/LCA.2024.337099223:1(53-56)Online publication date: Jan-2024
                          • (2023)AutoHyper: Explicit-State Model Checking for HyperLTLTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-30823-9_8(145-163)Online publication date: 22-Apr-2023
                          • (2021)Efficient, Distributed, and Non-Speculative Multi-Address Atomic OperationsMICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3466752.3480073(337-349)Online publication date: 18-Oct-2021
                          • (2021)Efficient randomized DCASProceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing10.1145/3406325.3451133(1221-1234)Online publication date: 15-Jun-2021
                          • (2021)Bounded Model Checking for HyperpropertiesTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-72016-2_6(94-112)Online publication date: 20-Mar-2021
                          • (2019)Decoupling lock-free data structures from memory reclamation for static analysisProceedings of the ACM on Programming Languages10.1145/32903713:POPL(1-31)Online publication date: 2-Jan-2019
                          • (2019)OneFile: A Wait-Free Persistent Transactional Memory2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN.2019.00028(151-163)Online publication date: Jun-2019
                          • (2018)Practical concurrent traversals in search treesACM SIGPLAN Notices10.1145/3200691.317850353:1(207-218)Online publication date: 10-Feb-2018
                          • (2018)Practical concurrent traversals in search treesProceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3178487.3178503(207-218)Online publication date: 10-Feb-2018
                          • Show More Cited By

                          View Options

                          Get Access

                          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