skip to main content
research-article

Scalable join patterns

Published:22 October 2011Publication History
Skip Abstract Section

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.Google ScholarGoogle Scholar
  2. N. Benton, L. Cardelli, and C. Fournet. Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems, 26 (5), Sept. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. W. Dijkstra. Hierarchical ordering of sequential processes. Acta Informatica, 1 (2): 115--138, 1971.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Fournet and G. Gonthier. The join calculus: a language for distributed mobile programming. In APPSEM Summer School, Caminha, Portugal, Sept. 2000, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  12. F. Le Fessant and L. Maranget. Compiling join-patterns. In International Workshop on High-Level Concurrent Languages (HLCL), Sept. 1998.Google ScholarGoogle Scholar
  13. D. Lea. URL http://gee.cs.oswego.edu/dl/concurrency-interest/.Google ScholarGoogle Scholar
  14. D. Lea. A java fork/join framework. In ACM conference on Java, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. Lea. The java.util.concurrent synchronizer framework. Science of Computer Programming, 58 (3): 293 -- 309, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Y. Liu, 2009. URL http://channel.sourceforge.net/.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Odersky. An overview of functional nets. In APPSEM Summer School, Caminha, Portugal, Sept. 2000, 2002.Google ScholarGoogle Scholar
  22. H. Plociniczak and S. Eisenbach. JErlang: Erlang with Joins. In Coordination Models and Languages, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Reppy, C. V. Russo, and Y. Xiao. Parallel concurrent ml. In ACM SIGPLAN International Conference on Functional Programming (ICFP), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Russo. The Joins Concurrency Library. In International Symposium on Practical Aspects of Declarative Languages (PADL), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Russo. Join Patterns for Visual Basic. In ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  27. W. N. Scherer, III and M. L. Scott. Nonblocking concurrent objects with condition synchronization. In International Symposium on Distributed Computing (DISC), 2004.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N. Shavit and D. Touitou. Software transactional memory. In ACM Symposium on Principles of Distributed Computing (PODC), 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Singh. Higher-order combinators for join patterns using STM. ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), June 2006.Google ScholarGoogle Scholar
  31. M. Sulzmann and E. S. L. Lam. Parallel join patterns with guards and propagation. Unpublished manuscript, 2008.Google ScholarGoogle Scholar

Index Terms

  1. Scalable join patterns

    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

    Full Access

    • Published in

      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
      • 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

      Copyright © 2011 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 22 October 2011

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!