skip to main content
10.1145/1953611.1953616acmotherconferencesArticle/Chapter ViewAbstractPublication PagesparaplopConference Proceedingsconference-collections
research-article

Three layer cake for shared-memory programming

Published:30 March 2010Publication History

ABSTRACT

There are many different styles of parallel programming for shared-memory hardware. Each style has strengths, but can conflict with other styles. How can we use a variety of these styles in one program and minimize their conflict and maximize performance, readability, and flexibility? This paper surveys the relative advantages and disadvantages of three styles (SIMD, fork join, and message passing), shows how to compose them hierarchically, and advises how to choose what goes at each level in the hierarchy.

References

  1. Charm++. http://charm.cs.illinois.edu/research/charm.Google ScholarGoogle Scholar
  2. The Cilk project. http://supertech.csail.mit.edu/cilk.Google ScholarGoogle Scholar
  3. Erlang programming language, official website. http://ftp.sunet.se/pub/lang/erlang.Google ScholarGoogle Scholar
  4. Intel® Cilk++ sdk programmer's guide. http://software.intel.com/en-us/articles/download-intel-cilk-sdk.Google ScholarGoogle Scholar
  5. Intel® Threading Building Blocks. http://www.threadingbuildingblocks.org.Google ScholarGoogle Scholar
  6. Message passing interface. http://www.mpi-forum.org.Google ScholarGoogle Scholar
  7. NESL: A parallel programming language. http://www.cs.cmu.edu/~scandal/nesl.html.Google ScholarGoogle Scholar
  8. Web workers. http://www.whatwg.org/specs/web-workers/current-work.Google ScholarGoogle Scholar
  9. ZPL. http://www.cs.washington.edu/research/zpl/home/index.html.Google ScholarGoogle Scholar
  10. M. Frigo, P. Halpern, C. Leiserson, and S. Lewin-Berlin. Reducers and other Cilk++ hyperobjects. In 21st ACM Symp. on Parallelism in Algorithms and Architectures, Calgary, Canada, August 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran. Cache oblivious algorithms. In 40th Annual Symposium on Foundations of Computer Science, New York, NY, USA, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. In '98 Conf. on Prog. Lang. Design and Implementation, Montreal, Quebec, Canada, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Frigo and V. Strumpen. Cache oblivious stencil computations. In 19th ACM Int. Conf. on Supercomputing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. A. R. Hoare. Communicating Sequential Processes. June 2004. http://www.usingcsp.com/cspbook.pdf.Google ScholarGoogle Scholar
  15. L. Hochstein, J. Carver, F. Shull, S. Asgari, V. Basili, J. Hollingsworth, and M. Zelkowitz. Parallel programmer productivity: A case study of novice parallel programmers. In Proc. of the 2005 ACM/IEEE Conf. on Supercomputing, Seattle, WA, USA, November 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. T. Karunaratna. Nondeteminator-3: A provably good data-race detector that runs in parallel. Master's thesis, MIT, 2005. http://supertech.csail.mit.edu/papers/tushara-meng-thesis.pdf.Google ScholarGoogle Scholar

Index Terms

  1. Three layer cake for shared-memory programming

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

              cover image ACM Other conferences
              ParaPLoP '10: Proceedings of the 2010 Workshop on Parallel Programming Patterns
              March 2010
              141 pages
              ISBN:9781450301275
              DOI:10.1145/1953611

              Copyright © 2010 ACM

              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]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 30 March 2010

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader