MIT Department of Electrical Engineering & Computer Science

E E C S

Programming Shared-Memory Multiprocessors Using Cilk

Charles E. Leiserson
M.I.T., EECS and LCS

Monday, September 21, 1998
4:00 PM (refreshments 3:45)
Edgerton Hall, Room 34-101
EECS Colloquium

Abstract

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, 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 existing parallel programming environments, such as MPI and HPF, Cilk programs "scale down:" the efficiency of a Cilk program on one processor rivals that of a comparable C program.

In this talk, I will provide a tutorial on the Cilk language for people with a basic background in computer programming. I will explain how to program multithreaded applications in Cilk and how to analyze their performance. I will illustrate some of the ideas behind Cilk using the example of MIT's championship computer-chess programs, *Socrates and Cilkchess. I will also briefly sketch how the software technology underlying Cilk actually works.

See <http://theory.lcs.mit.edu/~cilk> for more background on Cilk and to download the Cilk-5.2 manual and software release.


URL of this page: http://www-eecs.mit.edu/AY98-99/events/4.html
Created: Sep 16, 1998  | Modified: Sep 17, 1998
This event is from the MIT EECS 1998-99 archive.  | Current events
To MIT EECS home page  | Your comments and inquiries are welcome.