skip to main content
10.1145/1375581.1375598acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Deriving linearizable fine-grained concurrent objects

Published:07 June 2008Publication History

ABSTRACT

Practical and efficient algorithms for concurrent data structures are difficult to construct and modify. Algorithms in the literature are often optimized for a specific setting, making it hard to separate the algorithmic insights from implementation details. The goal of this work is to systematically construct algorithms for a concurrent data structure starting from its sequential implementation. Towards that goal, we follow a construction process that combines manual steps corresponding to high-level insights with automatic exploration of implementation details. To assist us in this process, we built a new tool called Paraglider. The tool quickly explores large spaces of algorithms and uses bounded model checking to check linearizability of algorithms.

Starting from a sequential implementation and assisted by the tool, we present the steps that we used to derive various highly-concurrent algorithms. Among these algorithms is a new fine-grained set data structure that provides a wait-free contains operation, and uses only the compare-and-swap (CAS) primitive for synchronization.

References

  1. Abrial, J.-R., and Cansell, D. Formal construction of a non-blocking concurrent queue algorithm (a case study in atomicity). J. UCS 11, 5 (2005), 744--770.Google ScholarGoogle Scholar
  2. Amit, D., Rinetzky, N., Reps, T. W., Sagiv, M., and Yahav, E. Comparison under abstraction for verifying linearizability. In CAV (2007), vol. 4590 of LNCS, Springer, pp. 477--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bansal, S., and Aiken, A. Automatic generation of peephole superoptimizers. SIGOPS Oper. Syst. Rev. 40, 5 (2006), 394--403. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bar-David, Y., and Taubenfeld, G. Automatic discovery of mutual exclusion algorithms. In Proc. of the symp. on Principles of Distributed Computing (2003), pp. 305--305. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Burckhardt, S., Alur, R., and Martin, M. M. K. Bounded model checking of concurrent data types on relaxed memory models: A case study. In CAV (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Burckhardt, S., Alur, R., and Martin, M. M. K. Checkfence: checking consistency of concurrent data types on relaxed memory models. SIGPLAN Not. 42, 6 (2007), 12--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Colvin, R., Groves, L., Luchangco, V., and Moir, M. Formal verification of a lazy concurrent list-based set algorithm. In CAV (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Doherty, S., Detlefs, D. L., Groves, L., Flood, C. H., Luchangco, V., Martin, P. A., Moir, M., Shavit, N., and Guy L. Steele, J. Dcas is not a silver bullet for nonblocking algorithm design. In SPAA (2004), pp. 216--224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Elmas, T., Tasiran, S., and Qadeer, S. Vyrd: verifying concurrent programs by runtime refinement-violation detection. In PLDI (2005), pp. 27--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Flanagan, C. Verifying commit-atomicity using model-checking. In SPIN (2004).Google ScholarGoogle Scholar
  11. Harris, T., and Fraser, K. Language support for lightweight transactions. SIGPLAN Not. 38, 11 (2003), 388--402. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Harris, T. L. A pragmatic implementation of non-blocking linked-lists. In DISC '01: Proc. of conf. on Distributed Computing (London, UK, 2001), Springer, pp. 300--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer, W., and Shavit, N. A lazy concurrent list-based set algorithm. In Proc. of conf. On Principles Of Distributed Systems (OPODIS 2005) (2005), pp. 3--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Herlihy, M. A methodology for implementing highly concurrent data objects. ACM Trans. Program. Lang. Syst. 15, 5 (1993), 745--770. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Herlihy, M. P., and Wing, J. M. Linearizability: a correctness condition for concurrent objects. Trans. on Prog. Lang. and Syst. 12, 3 (1990). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Kung, H. T., and Robinson, J. T. On optimistic methods for concurrency control. ACM Trans. Database Syst. 6, 2 (1981), 213--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lamport, L. How to make a multiprocessor computer that correctly executes multiprocess progranm. IEEE Trans. Comput. 28, 9 (1979), 690--691. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Michael, M. Personal communication.Google ScholarGoogle Scholar
  19. Massalin, H. Superoptimizer: a look at the smallest program. In ASPLOS-II: Proc. of conf. on Architectual support for programming languages and operating systems (1987), IEEE, pp. 122--126. Google ScholarGoogle ScholarCross RefCross Ref
  20. Michael, M., and Scott, M. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC (1996). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Michael, M. M. High performance dynamic lock-free hash tables and list-based sets. In SPAA (2002), pp. 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Papadimitriou, C. H. The serializability of concurrent database updates. J. ACM 26, 4 (1979), 631--653. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Prakash, S., Lee, Y. H., and Johnson, T. A nonblocking algorithm for shared queues using compare-and-swap. IEEE Trans. Comput. 43, 5 (1994), 548--559. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Solar-Lezama, A., Arnold, G., Tancau, L., Bodík, R., Saraswat, V. A., and Seshia, S. A. Sketching stencils. In PLDI (2007), pp. 167--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Solar-Lezama, A., Rabbah, R. M., Bodík, R., and Ebcioglu, K. Programming by sketching for bit-streaming programs. In PLDI (2005), ACM, pp. 281--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Solar-Lezama, A., Tancau, L., Bodík, R., Seshia, S. A., and Saraswat, V. A. Combinatorial sketching for finite programs. In ASPLOS (2006), pp. 404--415. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Treiber, R. K. Systems programming: Coping with parallelism. Tech. Rep. RJ 5118, IBM Almaden Research Center, APR 1986.Google ScholarGoogle Scholar
  28. Vafeiadis, V., Herlihy, M., Hoare, T., and Shapiro, M. Proving correctness of highly-concurrent linearisable objects. In PPoPP (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Vechev, M. T., Yahav, E., Bacon, D. F., and Rinetzky, N. CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors. In PLDI (2007), pp. 456--467. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Wing, J. M., and Gong, C. Testing and verifying concurrent objects. J. Parallel Distrib. Comput. 17, 1-2 (1993), 164--182. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Deriving linearizable fine-grained concurrent objects

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2008
        396 pages
        ISBN:9781595938602
        DOI:10.1145/1375581
        • General Chair:
        • Rajiv Gupta,
        • Program Chair:
        • Saman Amarasinghe
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 43, Issue 6
          PLDI '08
          June 2008
          382 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1379022
          Issue’s Table of Contents

        Copyright © 2008 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 7 June 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate406of2,067submissions,20%

        Upcoming Conference

        PLDI '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader