Intel Cilk Plus
Encyclopedia
Cilk Plus is an extension to the C
and C++
programming languages, designed for multithreaded
parallel computing
.
On July 31, 2009, Cilk Arts, producers of the Cilk++ programming language, announced that its products and engineering team were now part of Intel Corp. Intel and Cilk Arts integrated and advanced the technology further resulting in a September 2010 release of Intel Cilk Plus. Intel 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. Intel Cilk Plus differs from Cilk and Cilk++ by adding array extensions, being incorporated in a commercial compiler (from Intel), and compatibility with existing debuggers.
Intel has stated its desire to refine Cilk Plus and to enable it to be implemented by other compilers to gain industry wide adoption. In November 2010, Intel published a language specification and an ABI specification to enable other compilers to implement Cilk Plus and to optionally utilize the Intel runtime.
The Cilk Plus C and C++ extensions have also been implemented in the GCC
compiler. The implementation is currently maintained by Intel and has not been included yet in any officially released GCC version.
As of August 2011, Intel has announced that it is maintaining Cilk Plus as a branch of GCC
4.7. The runtime is available dual-licenced, including BSD-3.
Cilk Plus offers a number of improvements over OpenMP
, for example guaranteed maximum memory usage scaling.
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
programming languages, designed for multithreaded
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
parallel computing
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
.
On July 31, 2009, Cilk Arts, producers of the Cilk++ programming language, announced that its products and engineering team were now part of Intel Corp. Intel and Cilk Arts integrated and advanced the technology further resulting in a September 2010 release of Intel Cilk Plus. Intel 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. Intel Cilk Plus differs from Cilk and Cilk++ by adding array extensions, being incorporated in a commercial compiler (from Intel), and compatibility with existing debuggers.
Intel has stated its desire to refine Cilk Plus and to enable it to be implemented by other compilers to gain industry wide adoption. In November 2010, Intel published a language specification and an ABI specification to enable other compilers to implement Cilk Plus and to optionally utilize the Intel runtime.
The Cilk Plus C and C++ extensions have also been implemented in the GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
compiler. The implementation is currently maintained by Intel and has not been included yet in any officially released GCC version.
As of August 2011, Intel has announced that it is maintaining Cilk Plus as a branch of GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
4.7. The runtime is available dual-licenced, including BSD-3.
Cilk Plus offers a number of improvements over OpenMP
OpenMP
OpenMP is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on most processor architectures and operating systems, including Linux, Unix, AIX, Solaris, Mac OS X, and Microsoft Windows platforms...
, for example guaranteed maximum memory usage scaling.
See also
- CilkCilkCilk is a general-purpose programming language designed for multithreaded parallel computing. The commercial instantiation is Intel Cilk Plus.-Design:...
- CilkChessCilkChessCilkchess is a chess-playing program which was written in Cilk. This program has won numerous prizes in international competition and in its time it was considered to be among the strongest in the world.-...
- Intel Array Building BlocksIntel Array Building BlocksIntel Array Building Blocks is a C++ library developed by Intel Corporation for exploiting data parallel portions of programs to take advantage of multi-core processors, graphics processing units and Intel Many Integrated Core Architecture processors...
- Intel Concurrent Collections
- Intel Parallel Building BlocksIntel Parallel Building BlocksIntel Parallel Building Blocks is a collection of three programming solutions designed for multithreaded parallel computing. PBB consists of Intel Cilk Plus, Intel Threading Building Blocks and Intel Array Building Blocks.- See also :...
- Intel Parallel StudioIntel Parallel StudioIntel Parallel Studio is a software development product developed by Intel that plugs into the Microsoft Visual Studio Integrated Development Environment. Its purpose is to facilitate developing programs for parallel computing...
- Intel Software NetworkIntel Software NetworkThe Intel Software Network is an international online program designed by Intel to encourage and support independent software vendors in developing applications for Intel hardware and software products...
(support and discussion) - Intel Threading Building BlocksIntel Threading Building BlocksIntel Threading Building Blocks is a C++ template library developed by Intel Corporation for writing software programs that take advantage of multi-core processors...
- Parallel computingParallel computingParallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...