HomeAboutEventsLogisticsRegisterJob FairMechmania
Programming Shared-Memory Multiprocessors
Using the Cilk Multithreaded Language

Charles Leiserson

Cilk is a language being developed in the MIT Laboratory for Computer Science with the goal of making parallel programming easy. Cilk minimally extends the C programming language to allow interactions among computational threads to be specified in a simple and high-level fashion. Cilk's provably efficient runtime system dynamically maps a user's program onto available physical resources using a "work-stealing" scheduler, freeing the programmer from concerns of communication protocols and load balancing.

In addition, Cilk provides an abstract performance model that a programmer can use to predict the multiprocessor performance of his application from its execution on a single processor. Not only do Cilk programs scale up to run efficiently on multiple processors, but unlike many existing parallel-programming environments, Cilk programs "scale down": the efficiency of a Cilk program on one processor rivals that of a comparable C program.

In this talk, Mr. Leiserson will provide a brief tutorial on the Cilk language. He will explain how to program multithreaded applications in Cilk and how to analyze their performance. He will also illustrate some of the ideas behind Cilk using the example of MIT's championship computer-chess programs, *Socrates and Cilkchess. In addition, he will briefly sketch how the software technology underlying Cilk works.

See here for more background on Cilk and to download the Cilk-5.3 manual and software release.

10th Annual Reflections | Projections Computing Conference • October 22 – 24, 2004 • Contact