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

Scalable join patterns

Published: 22 October 2011 Publication History
  • Get Citation Alerts
  • Abstract

    Coordination can destroy scalability in parallel programming. A comprehensive library of scalable synchronization primitives is therefore an essential tool for exploiting parallelism. Unfortunately, such primitives do not easily combine to yield solutions to more complex problems. We demonstrate that a concurrency library based on Fournet and Gonthier's join calculus can provide declarative and scalable coordination. By declarative, we mean that the programmer needs only to write down the constraints of a coordination problem, and the library will automatically derive a correct solution. By scalable, we mean that the derived solutions deliver robust performance both as the number of processors increases, and as the complexity of the coordination problem grows. We validate our claims empirically on seven coordination problems, comparing our generic solution to specialized algorithms from the literature.

    References

    [1]
    N. Benton. Jingle bells: Solving the Santa Claus problem in Polyphonic C#. Unpublished manuscript, Mar. 2003. URL http://research.microsoft.com/nick/santa.pdf.
    [2]
    N. Benton, L. Cardelli, and C. Fournet. Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems, 26 (5), Sept. 2004.
    [3]
    E. W. Dijkstra. Hierarchical ordering of sequential processes. Acta Informatica, 1 (2): 115--138, 1971.
    [4]
    C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In ACM SIGPLAN Symposium on Principles of Programming Languages (POPL), 1996.
    [5]
    C. Fournet and G. Gonthier. The join calculus: a language for distributed mobile programming. In APPSEM Summer School, Caminha, Portugal, Sept. 2000, 2002.
    [6]
    }Fournet97implicittypingC. Fournet, C. Laneve, L. Maranget, and D. Rémy. Implicit typing à la ML for the join-calculus. In International Conference on Concurrency Theory (CONCUR), 1997.
    [7]
    C. Fournet, F. Le Fessant, L. Maranget, and A. Schmitt. JoCaml: a language for concurrent distributed and mobile programming. In Advanced Functional Programming, 4th International School, Oxford, Aug. 2002, 2003.
    [8]
    T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), 2005.
    [9]
    M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
    [10]
    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, July 1990.
    [11]
    G. S. Itzstein and D. Kearney. Join Java: An alternative concurrency semantics for Java. Technical Report ACRC-01-001, University of South Australia, 2001.
    [12]
    F. Le Fessant and L. Maranget. Compiling join-patterns. In International Workshop on High-Level Concurrent Languages (HLCL), Sept. 1998.
    [13]
    D. Lea. URL http://gee.cs.oswego.edu/dl/concurrency-interest/.
    [14]
    D. Lea. A java fork/join framework. In ACM conference on Java, 2000.
    [15]
    D. Lea. The java.util.concurrent synchronizer framework. Science of Computer Programming, 58 (3): 293 -- 309, 2005.
    [16]
    Y. Liu, 2009. URL http://channel.sourceforge.net/.
    [17]
    J. M. Mellor-Crummey and M. L. Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Transactions on Computer Systems (TOCS), 9 (1): 21--65, February 1991.
    [18]
    M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In ACM Symposium on Principles of Distributed Computing (PODC), 1996.
    [19]
    M. M. Michael and M. L. Scott. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. Journal of Parallel and Distributed Computing, 51 (1): 1--26, May 1998.
    [20]
    M. Moir, V. Luchangco, and N. Shavit. Non-blocking k-compare single swap. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2003.
    [21]
    M. Odersky. An overview of functional nets. In APPSEM Summer School, Caminha, Portugal, Sept. 2000, 2002.
    [22]
    H. Plociniczak and S. Eisenbach. JErlang: Erlang with Joins. In Coordination Models and Languages, 2010.
    [23]
    J. Reppy, C. V. Russo, and Y. Xiao. Parallel concurrent ml. In ACM SIGPLAN International Conference on Functional Programming (ICFP), 2009.
    [24]
    C. Russo. The Joins Concurrency Library. In International Symposium on Practical Aspects of Declarative Languages (PADL), 2007.
    [25]
    C. Russo. Join Patterns for Visual Basic. In ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2008.
    [26]
    W. Scherer, III, D. Lea, and M. L. Scott. A scalable elimination-based exchange channel. In Synchronization and Concurrency in Object-Oriented Languages (SCOOL), 2005.
    [27]
    W. N. Scherer, III and M. L. Scott. Nonblocking concurrent objects with condition synchronization. In International Symposium on Distributed Computing (DISC), 2004.
    [28]
    W. N. Scherer, III, D. Lea, and M. L. Scott. Scalable synchronous queues. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), 2006.
    [29]
    N. Shavit and D. Touitou. Software transactional memory. In ACM Symposium on Principles of Distributed Computing (PODC), 1995.
    [30]
    S. Singh. Higher-order combinators for join patterns using STM. ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), June 2006.
    [31]
    M. Sulzmann and E. S. L. Lam. Parallel join patterns with guards and propagation. Unpublished manuscript, 2008.

    Cited By

    View all
    • (2019)Concurrent Typestate-Oriented Programming in JavaElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.291.3291(24-34)Online publication date: 2-Apr-2019
    • (2017)The Chemical Approach to Typestate-Oriented ProgrammingACM Transactions on Programming Languages and Systems10.1145/306484939:3(1-45)Online publication date: 26-May-2017
    • (2016)CPL: a core language for cloud computingProceedings of the 15th International Conference on Modularity10.1145/2889443.2889452(94-105)Online publication date: 14-Mar-2016
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
    October 2011
    1104 pages
    ISBN:9781450309400
    DOI:10.1145/2048066
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 46, Issue 10
      OOPSLA '11
      October 2011
      1063 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2076021
      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: 22 October 2011

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. concurrency
    2. message passing
    3. parallelism

    Qualifiers

    • Research-article

    Conference

    SPLASH '11
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)Concurrent Typestate-Oriented Programming in JavaElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.291.3291(24-34)Online publication date: 2-Apr-2019
    • (2017)The Chemical Approach to Typestate-Oriented ProgrammingACM Transactions on Programming Languages and Systems10.1145/306484939:3(1-45)Online publication date: 26-May-2017
    • (2016)CPL: a core language for cloud computingProceedings of the 15th International Conference on Modularity10.1145/2889443.2889452(94-105)Online publication date: 14-Mar-2016
    • (2015)The chemical approach to typestate-oriented programmingACM SIGPLAN Notices10.1145/2858965.281428750:10(917-934)Online publication date: 23-Oct-2015
    • (2015)The chemical approach to typestate-oriented programmingProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814287(917-934)Online publication date: 23-Oct-2015
    • (2014)JEScalaProceedings of the 13th international conference on Modularity10.1145/2577080.2577082(205-216)Online publication date: 22-Apr-2014
    • (2013)Mapping the Join Calculus to Heterogeneous HardwareElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.109.2109(7-12)Online publication date: 23-Feb-2013
    • (2012)ReagentsACM SIGPLAN Notices10.1145/2345156.225408447:6(157-168)Online publication date: 11-Jun-2012
    • (2012)ReagentsProceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2254064.2254084(157-168)Online publication date: 11-Jun-2012
    • (2012)Control flow analysis for the join calculusProceedings of the 19th international conference on Static Analysis10.1007/978-3-642-33125-1_14(181-197)Online publication date: 11-Sep-2012
    • 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