skip to main content
10.1145/1629911.1630048acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
research-article

The Cilk++ concurrency platform

Published:26 July 2009Publication History

ABSTRACT

The availability of multicore processors across a wide range of computing platforms has created a strong demand for software frameworks that can harness these resources. This paper overviews the Cilk++ programming environment, which incorporates a compiler, a runtime system, and a race-detection tool. The Cilk++ runtime system guarantees to load-balance computations effectively. To cope with legacy codes containing global variables, Cilk++ provides a "hyperobject" library which allows races on nonlocal variables to be mitigated without lock contention or substantial code restructuring.

References

  1. Gene Amdahl. The validity of the single processor approach to achieving large-scale computing capabilities. In Proceedings of the AFIPS Spring Joint Computer Conference, pages 483--485, April 1967. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Charles E. Leiserson. On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs. In Proceedings of the Sixteenth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA 2004), pages 133--144, Barcelona, Spain, June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Robert D. Blumofe and Charles E. Leiserson. Space-efficient scheduling of multithreaded computations. In Proceedings of the Twenty Fifth Annual ACM Symposium on Theory of Computing, pages 362--371, San Diego, California, May 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Robert D. Blumofe and Charles E. Leiserson. Scheduling multithreaded computations by work stealing. Journal of the ACM, 46(5):720--748, September 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Derek Bruening. Efficient, Transparent, and Comprehensive Runtime Code Manipulation. PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Guang-Ien Cheng, Mingdong Feng, Charles E. Leiserson, Keith H. Randall, and Andrew F. Stark. Detecting data races in cilk programs that use locks. In Proceedings of the Tenth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA '98), pages 298--309, Puerto Vallarta, Mexico, June 28--July 2 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. The MIT Press, third edition, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Anne Dinning and Edith Schonberg. An empirical comparison of monitoring algorithms for access anomaly detection. In Proceedings of the Second ACM SIGPLAN Symposium on Principles&Practice of Parallel Programming (PPoPP), pages 1--10. ACM Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Anne Dinning and Edith Schonberg. Detecting access anomalies in programs with critical sections. In Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, pages 85--96. ACM Press, May 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Perry A. Emrath, Sanjoy Ghosh, and David A. Padua. Event synchronization analysis for debugging parallel programs. In Supercomputing '91, pages 580--588, November 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mingdong Feng and Charles E. Leiserson. Efficient detection of determinacy races in Cilk programs. In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 1--11, Newport, Rhode Island, June22--25 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Yaacov Fenster. Detecting parallel access anomalies. Master's thesis, Hebrew University, March 1998.Google ScholarGoogle Scholar
  13. Matteo Frigo, Pablo Halpern, Charles E. Leiserson, and Stephen Lewin-Berlin. Reducers and other Cilk++ hyperobjects. In Proceedings of the Twenty-First Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA '09), Calgary, Canada, August 2009. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation, pages 212--223, Montreal, Quebec, Canada, June 1998. Proceedings published ACM SIGPLAN Notices, Vol. 33, No. 5, May, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Michael R. Garey and David S. Johnson. Computers and Intractability. W. H. Freeman and Company, 1979.Google ScholarGoogle Scholar
  16. David P. Helmbold, Charles E. McDowell, and Jian-Zhong Wang. Analyzing traces with anonymous synchronization. In Proceedings of the 1990 International Conference on Parallel Processing, pages II70--II77, August 1990.Google ScholarGoogle Scholar
  17. Institute of Electrical and Electronic Engineers. Information technology --- Portable Operating System Interface (POSIX) --- Part 1: System application program interface (API) {C language}. IEEE Standard 1003.1, 1996 Edition.Google ScholarGoogle Scholar
  18. Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, Inc., second edition, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 190--200, New York, NY, USA, 2005. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. John Mellor-Crummey. On-the-fly detection of data races for programs with nested fork-join parallelism. In Proceedings of Super-computing'91, pages 24--33. IEEE Computer Society Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Barton P. Miller and Jong-Deok Choi. A mechanism for efficient debugging of parallel programs. In Proceedings of the 1988 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 135--144, Atlanta, Georgia, June 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sang Lyul Min and Jong-Deok Choi. An efficient cache-based access anomaly detection scheme. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 235--244, Palo Alto, California, April 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. The MPI Forum. MPI: A message passing interface. In Supercomputing '93, pages 878--883, Portland, Oregon, November 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. The MPI Forum. MPI-2: Extensions to the Message-Passing Interface. Technical Report, University of Tennessee, Knoxville, 1996. Available from: citeseer.ist.psu.edu/517818.html.Google ScholarGoogle Scholar
  25. Robert H. B. Netzer and Sanjoy Ghosh. Efficient race condition detection for shared-memory programs with post/wait synchronization. In Proceedings of the 1992 International Conference on Parallel Processing, St. Charles, Illinois, August 1992.Google ScholarGoogle Scholar
  26. Robert H. B. Netzer and Barton P. Miller. What are race conditions? ACM Letters on Programming Languages and Systems, 1(1):74--88, March 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Itzhak Nudler and Larry Rudolph. Tools for the efficient development of efficient parallel programs. In Proceedings of the First Israeli Conference on Computer Systems Engineering, May 1986.Google ScholarGoogle Scholar
  28. Dejan Perković and Peter Keleher. Online data-race detection via coherency guarantees. In Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation (OSDI), Seattle, Washington, October 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Stefan Savage, Michael Burrows, Greg Nelson, Patric Sobalvarro, and Thomas Anderson. Eraser: A dynamic race detector for multithreaded programs. In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles (SOSP), October 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, third edition, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Bjarne Stroustrup. C++ in 2005. Addison-Wesley, 2005. Preface to the Japanese translation.Google ScholarGoogle Scholar
  32. Supercomputing Technologies Group, Massachusetts Institute of Technology Laboratory for Computer Science. Cilk 5.4.2.3 Reference Manual, April 2006. Available from: http://supertech.csail.mit.edu/cilk/home/software.html.Google ScholarGoogle Scholar
  33. William Wulf and Mary Shaw. Global variable considered harmful. SIGPLAN Notices, 8(2):28--34, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The Cilk++ concurrency platform

      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 Conferences
        DAC '09: Proceedings of the 46th Annual Design Automation Conference
        July 2009
        994 pages
        ISBN:9781605584973
        DOI:10.1145/1629911

        Copyright © 2009 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: 26 July 2009

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate1,770of5,499submissions,32%

        Upcoming Conference

        DAC '24
        61st ACM/IEEE Design Automation Conference
        June 23 - 27, 2024
        San Francisco , CA , USA

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader