skip to main content
research-article

Back to the futures: incremental parallelization of existing sequential runtime systems

Published:17 October 2010Publication History
Skip Abstract Section

Abstract

Many language implementations, particularly for high-level and scripting languages, are based on carefully honed runtime systems that have an internally sequential execution model. Adding support for parallelism in the usual form -- as threads that run arbitrary code in parallel -- would require a major revision or even a rewrite to add safe and efficient locking and communication. We describe an alternative approach to incremental parallelization of runtime systems. This approach can be applied inexpensively to many sequential runtime systems, and we demonstrate its effectiveness in the Racket runtime system and Parrot virtual machine. Our evaluation assesses both the performance benefits and the developer effort needed to implement our approach. We find that incremental parallelization can provide useful, scalable parallelism on commodity multicore processors at a fraction of the effort required to implement conventional parallel threads.

References

  1. }}Python design note on threads, 2008. http: //www.python.org/doc/faq/library/ #can-t-we-get-rid-of-the-global-interpreter-lock.Google ScholarGoogle Scholar
  2. }}ALLEN, E., CHASE, D., HALLETT, J., LUCHANGCO, V., MAESSEN, J., AND STEELE, G. The Fortress language spec- ification. http://research.sun.com/projects/plrg/ fortress.pdf, 2005.Google ScholarGoogle Scholar
  3. }}ARMSTRONG, J. A history of Erlang. In HOPL III: Pro- ceedings of the third ACM SIGPLAN conference on History of programming languages (2007), pp. 6--1--6--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}BAILEY, D., BARTON, J., LASINSKI, T., AND SIMON, H. The NAS parallel benchmarks.Tech. Rep. RNR-91-002, NASA Ames Research Center, August 1991.Google ScholarGoogle Scholar
  5. }}BLELLOCH, G. Implementation of a portable nested data- parallel language. Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Program- ming (1993), 102--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}BLUMOFE, R., JOERG, C., KUSZMAUL, B., LEISERSON, C., RANDALL, K., AND ZHOU, Y. Cilk: An efficient mul- tithreaded runtime system. ACM SIGPLAN Notices (1995), 207--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}BOURGOIN, M., JONQUET, A., CHAILLOUX, E., CANOU, B., AND WANG, P. OCaml4Multicore, 2007. http://www. algo-prog.info/ocmc/web/.Google ScholarGoogle Scholar
  8. }}CHAKRAVARTY, M. T., LESHCHINSKIY, R., JONES, S. P., KELLER, G., AND MARLOW, S. Data Parallel Haskell: A status report. Proceedings of the 2007 Workshop on Declara- tive Aspects of Multicore Programming (2007), 10--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}CHAMBERLAIN, B. L., CALLAHAN, D., AND ZIMA, H. P. Parallel programming and the Chapel language. International Journal of High Performance Computing Applications (Au- gust 2007), 291--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}CHARLES, P., GROTHOFF, C., SARASWAT, V., DONAWA, C., KIELSTRA, A., EBCIOGLU, K., VON PRAUN, C., AND SARKER, V.X10: An object-oriented approach to non- uniform cluster computing. Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Program- ming, Systems, Languages, and Applications (2005), 519-- 538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}FLUET, M., RAINEY, M., REPPY, J., SHAW, A., AND XIAO, Y. Manticore: A heterogeneous parallel language. Proceed- ings of the 2007 Workshop on Declarative Aspects of Multi- core Programming (2007), 37--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}FRUMKIN, M., SCHULTZ, M., JIN, H., AND YAN, J. Im- plementation of NAS parallel benchmarks in Java.Tech. Rep. NAS-02-009, Ames Research Center, Moffett Field, CA, USA, 2002.Google ScholarGoogle Scholar
  13. }}HALSTEAD, JR., R. H. MULTILISP: A language for concur- rent symbolic computation. ACM Transactions on Program- ming Languages and Systems (TOPLAS) (October 1985), 501--538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}JONES, S., GORDON, A., AND FINNE, S.Concurrent Haskell. Conference Record of the 23rd ACM SIGPLAN- SIGACT Symposium on Principles of Programming Lan- guages (POPL '96) (January 1996), 295--308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}JUSZCZAK, C. Fast mergesort implementation based on half- copying merge algorithm, 2007. http://kicia.ift.uni. wroc.pl/algorytmy/mergesortpaper.pdf.Google ScholarGoogle Scholar
  16. }}Thread state and the global interpreter lock. http://docs.python.org/c-api/init.html# thread-state-and-the-global-interpreter-lock, March 2010.Google ScholarGoogle Scholar

Index Terms

  1. Back to the futures: incremental parallelization of existing sequential runtime systems

    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

    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!