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

Reagents: expressing and composing fine-grained concurrency

Published:11 June 2012Publication History

ABSTRACT

Efficient communication and synchronization is crucial for fine grained parallelism. Libraries providing such features, while indispensable, are difficult to write, and often cannot be tailored or composed to meet the needs of specific users. We introduce reagents, a set of combinators for concisely expressing concurrency algorithms. Reagents scale as well as their hand-coded counterparts, while providing the composability existing libraries lack.

References

  1. H. Attiya and E. Hillel. Highly-concurrent multi-word synchronization. In ICDCN, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Cederman and P. Tsigas. Supporting lock-free composition of concurrent data objects. In CF, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Dice, O. Shalev, and N. Shavit. Transactional locking II. DISC, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. Donnelly and M. Fluet. Transactional events. JFP, 18 (5&6): 649--706, Oct. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Felber, V. Gramoli, and R. Guerraoui. Elastic transactions. In DISC, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In POPL, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. K. Fraser and T. Harris. Concurrent programming without locks. TOCS, 25 (2), May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPOPP, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA, Jan. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat combining and the synchronization-parallelism tradeoff. In SPAA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Herlihy, V. Luchangco, M. Moir, and W. Scherer III. Software transactional memory for dynamic-sized data structures. In PODC, 2003. ISBN 1581137087. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12 (3): 463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Hughes. Generalising monads to arrows. Science of computer programming, 37 (1--3): 67--111, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Larus and R. Rajwar. Transactional memory. Morgan and Claypool, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  16. M. Lesani and J. Palsberg. Communicating memory transactions. In PPOPP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. V. Luchangco and V. Marathe. Transaction communicators: enabling cooperation among concurrent transactions. In PPOPP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Luchangco, M. Moir, and N. Shavit. Nonblocking k-compare-single-swap. In SPAA, Dec. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Mellor-Crummey and M. Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. TOCS, 9 (1): 21--65, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Peyton Jones and P. Wadler. Imperative functional programming. In POPL, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Reppy. CML: a higher order concurrent language. In PLDI, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Reppy, C. Russo, and Y. Xiao. Parallel concurrent ML. In ICFP, Aug. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. W. Scherer III and M. Scott. Nonblocking concurrent data structures with condition synchronization. In DISC. Springer, 2004.Google ScholarGoogle Scholar
  25. N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, 10 (2): 99--116, Feb. 1997.Google ScholarGoogle ScholarCross RefCross Ref
  26. N. Shavit and D. Touitou. Elimination trees and the construction of pools and stacks. Theory of Computing Systems, 30: 645--670, 1997.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. Transactions with isolation and cooperation. In OOPSLA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Treiber. Systems programming: Coping with parallelism. Technical report, IBM Almaden Research Center, 1986.Google ScholarGoogle Scholar
  29. A. Turon and C. V. Russo. Scalable Join Patterns. In OOPSLA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. P. Wadler. The essence of functional programming. In POPL, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reagents: expressing and composing fine-grained concurrency

        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 '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
          June 2012
          572 pages
          ISBN:9781450312059
          DOI:10.1145/2254064
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 47, Issue 6
            PLDI '12
            June 2012
            534 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/2345156
            Issue’s Table of Contents

          Copyright © 2012 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: 11 June 2012

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          PLDI '12 Paper Acceptance Rate48of255submissions,19%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