Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cilk
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== ===MIT Cilk=== The Cilk programming language grew out of three separate projects at the MIT Laboratory for Computer Science:<ref>{{Cite web |url=https://www.cilkplus.org/cilk-history |title="A Brief History of Cilk |access-date=2015-06-25 |archive-date=2015-06-26 |archive-url=https://web.archive.org/web/20150626125629/https://www.cilkplus.org/cilk-history |url-status=dead }}</ref> * Theoretical work on scheduling multi-threaded applications. * StarTech β a parallel [[computer chess|chess program]] built to run on the Thinking Machines Corporation's Connection Machine model CM-5. * PCM/Threaded-C β a C-based package for scheduling continuation-passing-style threads on the CM-5 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 compiler was released in September 1994. The original Cilk language was based on [[ANSI C]], with the addition of Cilk-specific keywords to signal parallelism. When the Cilk keywords are removed from Cilk source code, the result should always be a valid C program, called the ''serial elision'' (or ''C elision'') of the full Cilk program, with the same semantics as the Cilk program running on a single processor. Despite several similarities,{{which|date=September 2015}} Cilk is not directly related to AT&T Bell Labs' [[Concurrent C]]. Cilk was implemented as a translator to C, targeting the [[GNU C Compiler]] (GCC). The last version, Cilk 5.4.6, is available from the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL), but is no longer supported.<ref>{{cite web |url=http://supertech.csail.mit.edu/cilk/ |title=The Cilk Project |date=8 October 2010 |access-date=25 January 2016 |publisher=MIT CSAIL}}</ref> A showcase for Cilk's capabilities was the Cilkchess parallel chess-playing program, which won several computer chess prizes in the 1990s, including the 1996 Open Dutch Computer Chess Championship.<ref>{{cite journal |last1=Leiserson |first1=Charles E. |first2=Aske |last2=Plaat |title=Programming parallel applications in Cilk |journal=SIAM News |volume=31 |year=1998 |url=https://www.researchgate.net/publication/2427921}}</ref> ===Cilk Arts and Cilk++=== Prior to {{circa|2006}}, the market for Cilk was restricted to high-performance computing. The emergence of multicore processors in mainstream computing meant that hundreds of millions of new parallel computers were being shipped every year. Cilk Arts was formed to capitalize on that opportunity: in 2006, Leiserson launched Cilk Arts to create and bring to market a modern version of Cilk that supports the commercial needs of an upcoming generation of programmers. The company closed a Series A venture financing round in October 2007, and its product, Cilk++ 1.0, shipped in December, 2008. Cilk++ differs from Cilk in several ways: support for C++, support for loops, and [[#Reducers and hyperobjects|hyperobjects]]{{snd}} a new construct designed to solve data race problems created by parallel accesses to global variables. Cilk++ was [[proprietary software]]. Like its predecessor, it was implemented as a Cilk-to-C++ compiler. It supported the [[Microsoft Visual C++|Microsoft]] and GNU compilers. ===Intel Cilk Plus=== On July 31, 2009, Cilk Arts announced on its web site that its products and engineering team were now part of [[Intel]] Corp. In early 2010, the Cilk website at <code>www.cilk.com</code> began redirecting to the Intel website (as of early 2017, the original Cilk website no longer resolves to a host). Intel and Cilk Arts integrated and advanced the technology further resulting in a September 2010 release of Intel [[Cilk Plus]].<ref>[http://www.hpcwire.com/features/Intel-Flexes-Parallel-Programming-Muscles-102084438.html "Intel Flexes Parallel Programming Muscles"] {{webarchive|url=https://web.archive.org/web/20100906030803/http://www.hpcwire.com/features/Intel-Flexes-Parallel-Programming-Muscles-102084438.html |date=2010-09-06 }}, HPCwire (2010-09-02). Retrieved on 2010-09-14.</ref><ref>[http://www.drdobbs.com/go-parallel/blog/archives/2010/09/parallel_studio_1.html "Parallel Studio 2011: Now We Know What Happened to Ct, Cilk++, and RapidMind"] {{Webarchive|url=https://web.archive.org/web/20100926110843/http://www.drdobbs.com/go-parallel/blog/archives/2010/09/parallel_studio_1.html |date=2010-09-26 }}, Dr. Dobb's Journal (2010-09-02). Retrieved on 2010-09-14.</ref> Cilk Plus adopts simplifications, proposed by Cilk Arts in Cilk++, to eliminate the need for several of the original Cilk keywords while adding the ability to spawn functions and to deal with variables involved in reduction operations. Cilk Plus differs from Cilk and Cilk++ by adding array extensions, being incorporated in a commercial compiler (from Intel), and compatibility with existing debuggers.<ref>[http://software.intel.com/en-us/articles/intel-cilk-plus/ "Intel Cilk Plus: A quick, easy and reliable way to improve threaded performance"], Intel. Retrieved on 2010-09-14.</ref> Cilk Plus was first implemented in the [[Intel C++ Compiler]] with the release of the Intel compiler in Intel Composer XE 2010.{{Citation needed|date=March 2015}} An open source ([[BSD license|BSD-licensed]]) implementation was contributed by Intel to the [[GNU Compiler Collection]] (GCC), which shipped Cilk Plus support in version 4.9,<ref>[https://gcc.gnu.org/gcc-4.9/changes.html "GCC 4.9 Release Series Changes, New Features, and Fixes"], Free Software Foundation, Inc. Retrieved on 2014-06-29.</ref> except for the {{mono|_Cilk_for}} keyword, which was added in GCC 5.0. In February 2013, Intel announced a [[Clang]] [[Fork (software development)|fork]] with Cilk Plus support.<ref>[https://cilkplus.github.io/ Cilk Plus/LLVM]</ref> The Intel Compiler, but not the open source implementations, comes with a [[race condition|race detector]] and a performance analyzer. Intel later discontinued it, recommending its users switch to instead using either [[OpenMP]] or [[Threading Building Blocks|Intel's own TBB library]] for their parallel programming needs.<ref name=intelforum>{{cite web|url=https://software.intel.com/en-us/forums/intel-cilk-plus/topic/745556|title=Intel Cilk Plus is being deprecated|author=Hansang B.|date=20 September 2017|website=Intel Cilk Plus forum}}</ref> ===Differences between versions=== In the original MIT Cilk implementation, the first Cilk keyword is in fact <code>cilk</code>, which identifies a function which is written in Cilk. Since Cilk procedures can call C procedures directly, but C procedures cannot directly call or [[Spawn (computing)|spawn]] Cilk procedures, this keyword is needed to distinguish Cilk code from C code. Cilk Plus removes this restriction, as well as the <code>cilk</code> keyword, so C and C++ functions can call into Cilk Plus code and vice versa. ===Deprecation of Cilk Plus=== In May, 2017, GCC 7.1 was released and marked Cilk Plus support as deprecated.<ref>{{cite web|url=https://gcc.gnu.org/gcc-7/changes.html|title=GCC 7 Release Series. Changes, New Features, and Fixes|website=GCC, the GNU Compiler Collection}}</ref> Intel itself announced in September 2017 that they would deprecate Cilk Plus with the 2018 release of the Intel Software Development Tools.<ref name=intelforum/> In May 2018, GCC 8.1 was released with Cilk Plus support removed.<ref>{{cite web|url=https://gcc.gnu.org/gcc-8/changes.html|title=GCC 8 Release Series. Changes, New Features, and Fixes|website=GCC, the GNU Compiler Collection}}</ref> ===OpenCilk=== After Cilk Plus support was deprecated by Intel, MIT has taken on the development of Cilk in the OpenCilk implementation, focusing on the LLVM/Clang fork now termed "Tapir".<ref name="intelforum" /><ref>{{Cite web|date=2017-12-01|title=Cilk Hub taking on Cilk development after Intel announcement|url=http://cilk.mit.edu/cilkhub/2017/12/01/cilkhub/|url-status=live|access-date=2021-12-06|website=OpenCilk|language=en|archive-url=https://web.archive.org/web/20180612204746/http://cilk.mit.edu/cilkhub/2017/12/01/cilkhub/ |archive-date=2018-06-12 }}</ref> OpenCilk remains largely compatible with Intel Cilk Plus.<ref>{{Cite web|title=OpenCilk|url=https://cilk.mit.edu/|access-date=2021-12-06|website=OpenCilk|language=en}}</ref> Its first stable version was released in March 2021.<ref>{{Cite web|date=2021-03-05|title=Release opencilk/v1.0 Β· OpenCilk/opencilk-project|url=https://github.com/OpenCilk/opencilk-project/releases/tag/opencilk%2Fv1.0|url-status=live|access-date=2021-12-06|website=GitHub|language=en|archive-url=https://web.archive.org/web/20211206122729/https://github.com/OpenCilk/opencilk-project/releases/tag/opencilk%2Fv1.0 |archive-date=2021-12-06 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)