Cilk is a programming language originally developed at MIT, which gives developers the ability to create applications that run in parallel. The basic premise is that developers and programmers should concentrate on the structure of the program to run in parallel, without having to worry about the actual scheduling on various platforms.
The Cilk run time takes care of many of the details that are difficult for programmers to do, such as scheduling, load balancing, and communication with other processes. With the Cilk runtime system, efficient and predictable performance are guaranteed and programmers do not have to be concerned with these details. Cilk Plus is a version of Cilk in which Intel has added vector solutions and has open sourced the runtime. The specification is portable across various platforms, operating systems, and different processors.
Cilk Plus is known for its ability to use parallelism for C and C++ applications. Cilk is easy to learn and works with commercial debugging tools, allowing developers to quickly create new and efficient applications. Cilk Plus addresses a number of shortcomings that a template library based approach, such as:
- Usability in both C and C++
- Support for vector parallelism
- Serial elison – such that a Cilk Plus program using only one thread will behave as if the Cilk Plus keywords are replaced with C and C++
- Higher level optimization
The latest version of Cilk Plus from Intel adds capability such as array extensions, compatibility with popular debuggers and incorporation with other compilers. A language specification has been publish as well as an ABI, so that other compilers (than Intel) can implement Cilk Plus if they want to.
As parallel programming becomes a requirement to take advantage of new heterogeneous systems, new compiler technology is needed to help developers. The higher level and easier to use a technology is, the faster the adoption will be, leading to a healthy ecosystem of products.
Source: Intel, USA