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

    Cited By

    View all
    • (2023)Compiler‐driven approach for automating nonblocking synchronization in concurrent data abstractionsConcurrency and Computation: Practice and Experience10.1002/cpe.793536:5Online publication date: 24-Oct-2023
    • (2020)Cosmo: a concurrent separation logic for multicore OCamlProceedings of the ACM on Programming Languages10.1145/34089784:ICFP(1-29)Online publication date: 3-Aug-2020
    • (2019)Automating non-blocking synchronization in concurrent data abstractionsProceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2019.00074(735-747)Online publication date: 10-Nov-2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

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

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. arrows
    2. compositional concurrency
    3. fine-grained concurrency
    4. monads
    5. nonblocking algorithms

    Qualifiers

    • Research-article

    Conference

    PLDI '12
    Sponsor:

    Acceptance Rates

    PLDI '12 Paper Acceptance Rate 48 of 255 submissions, 19%;
    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)1

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Compiler‐driven approach for automating nonblocking synchronization in concurrent data abstractionsConcurrency and Computation: Practice and Experience10.1002/cpe.793536:5Online publication date: 24-Oct-2023
    • (2020)Cosmo: a concurrent separation logic for multicore OCamlProceedings of the ACM on Programming Languages10.1145/34089784:ICFP(1-29)Online publication date: 3-Aug-2020
    • (2019)Automating non-blocking synchronization in concurrent data abstractionsProceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2019.00074(735-747)Online publication date: 10-Nov-2019
    • (2018)Thread-safe reactive programmingProceedings of the ACM on Programming Languages10.1145/32764772:OOPSLA(1-30)Online publication date: 24-Oct-2018
    • (2015)Expressing and Composing Actors for Deterministic and Scalable Programming in CloudProceedings of the 2015 IEEE Symposium on Service-Oriented System Engineering10.1109/SOSE.2015.58(267-275)Online publication date: 30-Mar-2015
    • (2014)Reusable Concurrent Data TypesProceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 858610.1007/978-3-662-44202-9_8(182-206)Online publication date: 1-Aug-2014
    • (2014)Checking Linearizability of Encapsulated Extended OperationsProceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 841010.1007/978-3-642-54833-8_17(311-330)Online publication date: 5-Apr-2014
    • (2016)Transactional data structure librariesACM SIGPLAN Notices10.1145/2980983.290811251:6(682-696)Online publication date: 2-Jun-2016
    • (2016)Transactional data structure librariesProceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2908080.2908112(682-696)Online publication date: 2-Jun-2016
    • (2014)Reusable Concurrent Data TypesProceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 858610.1007/978-3-662-44202-9_8(182-206)Online publication date: 1-Aug-2014
    • 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