
The Cilk programming language grew out of three separate projects at the MIT Laboratory for Computer Science:
In April 1994 the three projects were combined and christened Cilk. The name "Cilk" is not an acronym, but an allusion to "nice threads" (silk) and the C programming language.
The Cilk-1 system was released in September 1994. The current implementation, Cilk-5.3, is an extension of ANSI C and is implemented as a source-to-source translator. Cilk-5.3 is available from the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL), though it is no longer supported. Cilk-5 allocates the frame of a Cilk function on the heap, requiring the use of the spawn keyword to call a Cilk function, and the cilk keyword on Cilk function declarations. The MIT releases are sometimes referred to as "MIT Cilk."
Like Cilk-5, Cilk++ allocates Cilk function frames from the heap. While a Cilk function can call or spawn Cilk, C or C++ functions, C or C++ functions compiled with a standard compiler cannot directly call a Cilk function.
The Cilk++ kit includes the Cilkscreen race-detection tool as well as the Cilkview scalability analyzer.
In 2009, Intel Corporation acquired Cilk Arts. The Cilk technology was merged with Array Notation to provide a comprehensive language extension to implement both task and vector parallelism. Intel Cilk Plus was released by Intel in 2010 as part of the Intel C++ Composer XE compiler. Key features include:
Intel has made the Intel Cilk Plus specifications freely available on the web.
In 2011, Intel announced that it was implementing Intel Cilk Plus in the "cilkplus" branch of GCC. The initial implementation was completed in 2012 and presented at the 2012 GCC Tools Cauldron conference. Intel has also proposed Intel Cilk Plus as a standard to the C++ standard body.