The Cilk Project

From SuperTech Wiki

(Difference between revisions)
Jump to: navigation, search
(Awards)
 
(26 intermediate revisions not shown)
Line 1: Line 1:
= <br>Cilk =
= <br>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.
+
[[Image:cilklogo.png]]
-
Click [http://supertech.csail.mit.edu/cilk/intro.html here] for a brief introduction to Cilk. The [http://supertech.csail.mit.edu/cilk/manual-5.4.6.pdf Cilk-5.4.6 Reference Manual] contains a programming guide with a short tutorial on the Cilk language.
+
 
 +
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 [http://supertech.csail.mit.edu/cilk/intro.html here] for a brief introduction to MIT Cilk. The [http://supertech.csail.mit.edu/cilk/manual-5.4.6.pdf 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.
= <br>Cilk at Intel =
= <br>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, [http://www.intel.com/?en_US_01 Intel Corporation] acquired Cilk Arts. Intel has since released its ICC compiler with [http://software.intel.com/en-us/articles/intel-cilk-plus/ Intel Cilk Plus], which provides an easy path to multicore-enabling C and C++ applications.
+
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, [http://www.intel.com/?en_US_01 Intel Corporation] acquired Cilk Arts. Intel has since released its ICC compiler with [http://software.intel.com/en-us/articles/intel-cilk-plus/ 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 [http://www.cilkplus.org www.cilkplus.org], that provides more information on Intel Cilk Plus.
= <br>Awards =
= <br>Awards =
-
SPAA Best Paper
+
'''2012 SPAA Best Paper'''
-
The [http://www.cs.jhu.edu/~spaa/ ACM Symposium on Parallelism in Algorithms and Architectures (SPAA)] awarded our 2009 paper on reducer hyperobjects its [http://www.cs.jhu.edu/~spaa/ Best Paper Award].
+
 
-
PLDI 10-Year Retrospective Award
+
The [http://www.cs.jhu.edu/~spaa/ ACM Symposium on Parallelism in Algorithms and Architectures (SPAA)] awarded our 2012 paper on implementing reducer hyperobjects using thread-local memory mapping its [http://www.cs.jhu.edu/~spaa/awards.html Best Paper Award].
-
In 2008 ACM SIGPLAN awarded our paper on the MIT Cilk-5 system its [http://www.sigplan.org/award-pldi.htm 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
+
'''2009 SPAA Best Paper'''
 +
 
 +
The [http://www.cs.jhu.edu/~spaa/ ACM Symposium on Parallelism in Algorithms and Architectures (SPAA)] awarded our 2009 paper on reducer hyperobjects its [http://www.cs.jhu.edu/~spaa/awards.html Best Paper Award].
 +
 
 +
<br>'''PLDI 10-Year Retrospective Award'''
 +
 
 +
In 2008 ACM SIGPLAN awarded our paper on the MIT Cilk-5 system its [http://www.sigplan.org/Awards/Conferences/PLDI/2008 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.
 +
 
 +
<br>'''HPC Challenge Award'''
Our Cilk entry for the [http://www.hpcchallenge.org/ 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.
Our Cilk entry for the [http://www.hpcchallenge.org/ 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.
 +
 +
<br>'''ICFP Programming Contest Award'''
 +
 +
A team of Cilk programmers won First Prize among 50 entrants in the 1998 [http://icfpcontest.org/ 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.''
= <br>Authors =
= <br>Authors =
Line 26: Line 41:
Cilk-5.4.6 is the latest official MIT Cilk release.
Cilk-5.4.6 is the latest official MIT Cilk release.
-
    * Released under the GNU General Public License.
+
::* 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).
+
::* 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
+
::* Download: [http://supertech.csail.mit.edu/cilk/cilk-5.4.6.tar.gz cilk-5.4.6.tar.gz]
= <br>Documentation =
= <br>Documentation =
-
    * Manual: [http://supertech.csail.mit.edu/cilk/manual-5.4.6.pdf manual-5.4.6.pdf]
+
::* Manual: [http://supertech.csail.mit.edu/cilk/manual-5.4.6.pdf manual-5.4.6.pdf]
-
    * Cilk lectures by Charles Leiserson and Bradley Kuszmaul:
+
::* Cilk lectures by Charles Leiserson and Bradley Kuszmaul:
-
          o PDF: lecture-1.pdf, lecture-2.pdf, lecture-3.pdf.
+
::::::* PDF: [http://supertech.csail.mit.edu/cilk/lecture-1.pdf lecture-1.pdf], [http://supertech.csail.mit.edu/cilk/lecture-2.pdf lecture-2.pdf], [http://supertech.csail.mit.edu/cilk/lecture-3.pdf lecture-3.pdf].
-
          o PowerPoint: lecture-1.ppt, lecture-2.ppt, lecture-3.ppt.
+
::::::* PowerPoint: [http://supertech.csail.mit.edu/cilk/lecture-1.ppt lecture-1.ppt], [http://supertech.csail.mit.edu/cilk/lecture-2.ppt lecture-2.ppt], [http://supertech.csail.mit.edu/cilk/lecture-3.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.
+
::* [http://supertech.csail.mit.edu/cilk/minicourse.ps.gz 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.
+
::* [http://supertech.csail.mit.edu/papers.html Papers] about Cilk and related topics.
= <br>Acknowledgments =
= <br>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.
+
The Cilk project is supported in part by [http://www.nsf.gov/ NSF] Grant E1A-9975036. Previous support was provided in part by [http://www.darpa.mil/ DARPA] Grant F30602-97-1-0270.
= <br>Feedback =
= <br>Feedback =
-
If you have comments, questions, or suggestions regarding Cilk, please email Charles E. Leiserson
+
If you have comments, questions, or suggestions regarding Cilk, please email [mailto:cel@csail.mit.edu Charles E. Leiserson].

Latest revision as of 20:49, 29 December 2012

Contents


Cilk

Image:cilklogo.png


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.


Awards

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.


Authors

Cilk was developed by the MIT CSAIL Supertech Research Group under the leadership of Prof. Charles E. Leiserson.


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:
  • 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.

Personal tools
Members Only
Off Topic