The Cilk Project
From SuperTech Wiki
Cilk (pronounced "silk") is a linguistic and runtime technology for algorithmic multithreaded programming developed at MIT. The philosophy behind Cilk is that a programmer should concentrate on structuring her or his program to expose parallelism and exploit locality, leaving Cilk's runtime system with the responsibility of scheduling the computation to run efficiently on a given platform. The Cilk runtime system takes care of details like load balancing, synchronization, and communication protocols. Cilk is algorithmic in that the runtime system guarantees efficient and predictable performance. Important milestones in MIT Cilk technology include the original Cilk-1, which provided a provably efficient work-stealing runtime support but little linguistic support; the later Cilk-5, which provided simple linguistic extensions for multithreading to ANSI C; and the commercial Cilk++, which extended the Cilk model to C++ and introduced "reducer hyperobjects" as an efficient means for resolving races on nonlocal variables. Cilk is an especially effective platform for programming "irregular" applications such as sparse numerical algorithms, N-body simulations, graph-theory applications, backtracking search, and cache-efficient stencil computations. Using Cilk, our group has developed three world-class chess programs, StarTech, *Socrates, and Cilkchess.
Click here for a brief introduction to MIT Cilk. The Cilk-5.4.6 Reference Manual contains a programming guide with a short tutorial on the Cilk language. MIT Cilk is no longer supported, however. For a modern implementation of Cilk, please see Intel Cilk Plus below.
Cilk at Intel
MIT licensed Cilk technology to Cilk Arts, Inc.of Lexington, MA, a venture-funded start-up founded by Charles E. Leiserson and Matteo Frigo. Cilk Arts developed Cilk++, a quantum improvement over MIT Cilk, which includes full support for C++, parallel loops, and superior interoperability with serial code. In July 2009, Intel Corporation acquired Cilk Arts. Intel has since released its ICC compiler with Intel Cilk Plus, which provides an easy path to multicore-enabling C and C++ applications. To hep with the adoption of Cilk Plus, Intel has launched an open source website www.cilkplus.org, that provides more information on Intel Cilk Plus.
2012 SPAA Best Paper
The ACM Symposium on Parallelism in Algorithms and Architectures (SPAA) awarded our 2012 paper on implementing reducer hyperobjects using thread-local memory mapping its Best Paper Award.
2009 SPAA Best Paper
The ACM Symposium on Parallelism in Algorithms and Architectures (SPAA) awarded our 2009 paper on reducer hyperobjects its Best Paper Award.
PLDI 10-Year Retrospective Award
In 2008 ACM SIGPLAN awarded our paper on the MIT Cilk-5 system its Most Influential 1998 PLDI Paper Award. This paper outlines the work-stealing technology underlying Cilk. If you want to know how Cilk works underneath, this is the paper to read.
HPC Challenge Award
Our Cilk entry for the HPC Challenge Class 2 award won the 2006 award for "Best Combination of Elegance and Performance". The award was made at SC'06 in Tampa on November 14 2006.
ICFP Programming Contest Award
A team of Cilk programmers won First Prize among 50 entrants in the 1998 ICFP Programming Contest sponsored by the International Conference on Functional Programming, in which Cilk was declared to be ``the programming language of choice for discriminating hackers.
Cilk was developed by the MIT CSAIL Supertech Research Group under the leadership of Prof. Charles E. Leiserson.
Cilk-5.4.6 is the latest official MIT Cilk release.
- Released under the GNU General Public License.
- Works on GNU/Linux (IA32, AMD64, PowerPC, probably IA64), MacOS X (Intel, probably PowerPC as well), MS Windows (under cygwin).
- Download: cilk-5.4.6.tar.gz
- Manual: manual-5.4.6.pdf
- Cilk lectures by Charles Leiserson and Bradley Kuszmaul:
- Minicourse on Multithreaded Programming. These notes contain two lectures that teach multithreaded algorithms using a Cilk-like model. These lectures were designed for the latter part of the MIT undergraduate class 6.046 Introduction to Algorithms. The style of the lecture notes follows that of the textbook by Cormen, Leiserson, and Rivest, but the pseudocode from that textbook has been "Cilkified" to allow it to describe multithreaded algorithms.
- Papers about Cilk and related topics.
If you have comments, questions, or suggestions regarding Cilk, please email Charles E. Leiserson.