Cilk

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 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 no 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 Cilk. The Cilk-5.4.6 Reference Manual contains a programming guide with a short tutorial on the Cilk language.

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.

Awards

SPAA Best Paper

PLDI 10-Year Retrospective Award

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.

Authors:

Software:

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

Documentation:

Manual: manual-5.4.6.pdf

Cilk lectures by Charles Leiserson and Bradley Kuszmaul: PDF: lecture-1.pdf, lecture-2.pdf, lecture-3.pdf. PowerPoint: lecture-1.ppt, lecture-2.ppt, lecture-3.ppt.

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.

Acknowledgments

The Cilk project is supported in part by NSF Grant E1A-9975036. Previous support was provided in part by DARPA Grant F30602-97-1-0270.

Feedback

If you have comments, questions, or suggestions regarding Cilk, please email Charles E. Leiserson