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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Robert D. Blumofe and Charles E. Leiserson. Scheduling multithreaded computations by work stealing. Journal of the ACM, 46(5):720--748, September 1999. Google ScholarDigital Library
- Derek Bruening. Efficient, Transparent, and Comprehensive Runtime Code Manipulation. PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 2004. Google ScholarDigital Library
- 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 ScholarDigital Library
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. The MIT Press, third edition, 2009. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Yaacov Fenster. Detecting parallel access anomalies. Master's thesis, Hebrew University, March 1998.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Michael R. Garey and David S. Johnson. Computers and Intractability. W. H. Freeman and Company, 1979.Google Scholar
- 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 Scholar
- 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 Scholar
- Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, Inc., second edition, 1988. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- The MPI Forum. MPI: A message passing interface. In Supercomputing '93, pages 878--883, Portland, Oregon, November 1993. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, third edition, 2000. Google ScholarDigital Library
- Bjarne Stroustrup. C++ in 2005. Addison-Wesley, 2005. Preface to the Japanese translation.Google Scholar
- 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 Scholar
- William Wulf and Mary Shaw. Global variable considered harmful. SIGPLAN Notices, 8(2):28--34, 1973. Google ScholarDigital Library
Index Terms
- The Cilk++ concurrency platform
Recommendations
The Cilkview scalability analyzer
SPAA '10: Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architecturesThe Cilkview scalability analyzer is a software tool for profiling, estimating scalability, and benchmarking multithreaded Cilk++ applications. Cilkview monitors logical parallelism during an instrumented execution of the Cilk++ application on a single ...
The implementation of the Cilk-5 multithreaded language
PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementationThe fifth release of the multithreaded language Cilk uses a provably good "work-stealing" scheduling algorithm similar to the first system, but the language has been completely redesigned and the runtime system completely reengineered. The efficiency of ...
The Cilk++ concurrency platform
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 ...
Comments