skip to main content
research-article

Places: adding message-passing parallelism to racket

Published:24 October 2011Publication History
Skip Abstract Section

Abstract

Places bring new support for message-passing parallelism to Racket. This paper gives an overview of the programming model and how we had to modify our existing, sequential runtime-system to support places. We show that the freedom to design the programming model helped us to make the implementation tractable; specifically, we avoided the conventional pain of adding just the right amount of locking to a big, legacy runtime system. The paper presents an evaluation of the design that includes both a real-world application and standard parallel benchmarks.

References

  1. David Bailey, John Barton, Thomas Lasinski, and Horst Simon. The NAS Parallel Benchmarks. NAS Technical Report RNR-91-002, Aug. 1991.Google ScholarGoogle Scholar
  2. David Beazley. Understanding the Python GIL. PyCon 2010, 2010.Google ScholarGoogle Scholar
  3. Phillippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarker. X10: An Object-Oriented Approach to Non-Uniform Cluster Computing. In Proc. ACM Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Katherine E. Coons, Sebastian Burckhardt, and Madanlal Musuvathi. GAMBIT: Effective Unit Testing for Concurrency Libraries. In Proc. ACM Symp. Principles and Practice of Parallel Programming, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Damien Doligez and Xavier Leroy. A Concurrent, Generational Garbage Collector for a Multithreaded Implementation of ML. In Proc. ACM Symp. Principles of Programming Languages, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Matthew Flatt and Robert Bruce Findler. Kill-Safe Synchronization Abstractions. In Proc. ACM Conf. Programming Language Design and Implementation, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Matthew Flatt, Robert Bruce Findler, Shriram Krishnamurthi, and Matthias Felleisen. Programming Languages as Operating Systems (or, Revenge of the Son of the Lisp Machine). In Proc. ACM Intl. Conf. Functional Programming, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Matthew Fluet, Mike Rainey, John Reppy, and Adam Shaw. Implicitly-threaded parallelism in Manticore. In Proc. ACM Intl. Conf. Functional Programming, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Simon Marlow, Tim Harris, Roshan P. James, and Simon Peyton Jones. Parallel Generational-copying Garbage Collection with a Block-structured Heap. In Proc. Intl. Symp. on Memory Management, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Simon Marlow, Simon Peyton Jones, and Satnam Singh. Runtime Support for Multicore haskell. In Proc. ACM Intl. Conf. Functional Programming, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. George C. Necula, Scott McPeak, Shree Prakash Rahul, and Westley Weimer. CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In Proc. Intl. Conf. Compiler Construction, pp. 213--228, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Python Software Foundation. Python design note on threads. http://www.python.org/doc/faq/library/#can-t-we-get-rid-of-the-global-interpreter-lock, 2008.Google ScholarGoogle Scholar
  13. Python Software Foundation. multiprocessing - Process-based ''threading'' interface. http://docs.python.org/release/2.6.6/library/multiprocessing.html#module-multiprocessing, 2011.Google ScholarGoogle Scholar
  14. John H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Konstantinos Sagonas and Jesper Wilhelmsson. Efficient Memory Management for Concurrent Programs that use Message Passing. Science of Computer Programming 62(2), pp. 98--121, Oct. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. Transactions on Computer Systems 15(4), pp. 391--411, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Werner Schuster. Future of the Threading and Garbage Collection in Ruby - Interview with Koichi SasadaThread State and the Global Interpreter Lock. http://www.infoq.com/news/2009/07/future-ruby-gc-gvl-gil, July 31, 2009.Google ScholarGoogle Scholar
  18. Peter Sewell, Susmit Sarkar, Scott Owens, Francesco Zappa Nardelli, and Magnus O. Myreen. x86-TSO: A Rigorous and Usable Programmer's Model for x86 Multiprocessors. Communications of the ACM 53(7), pp. 89--97, July 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. James Swaine, Kevin Tew, Peter Dinda, Robert Bruce Findler, and Matthew Flatt. Back to the futures: Incremental Parallelization of Existing Sequential Runtime Systems. In Proc. ACM Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Adam Wick and Matthew Flatt. Memory Accounting without Partitions. In Proc. Intl. Symp. on Memory Management, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Places: adding message-passing parallelism to racket

      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 47, Issue 2
        DLS '11
        February 2012
        103 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2168696
        Issue’s Table of Contents
        • cover image ACM Conferences
          DLS '11: Proceedings of the 7th symposium on Dynamic languages
          October 2011
          114 pages
          ISBN:9781450309394
          DOI:10.1145/2047849
          • General Chair:
          • Theo D'Hondt

        Copyright © 2011 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 24 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!