A Quick, Easy and Reliable way to Improve Performance
Intel® Cilk™ Plus is an extension to C and C++ that offers a quick and easy way to harness the power of both multicore and vector processing. The three Intel Cilk Plus keywords provide a simple yet surprisingly powerful model for parallel programming, while runtime and template libraries offer a well-tuned environment for building parallel applications. Learn more with the tutorials.
The Cilk Plus open project website includes information on Cilk Plus in GCC, Cilk Plus runtime sources, sample code, contributed libraries, open specifications and other information from the Cilk Plus community. The Intel Cilk Plus SDK provides race detection and scalability analysis tools for Cilk-style parallelized binaries.
Go to "Intel® C++ Compiler Code Samples" to see real-world applications that utilize the Intel® Cilk™ Plus extension.
Intel Cilk Plus allows you to:
- Write parallel programs using a simple model: With only three keywords to learn, C and C++ developers move quickly into the parallel programming domain.
- Identify data parallelism by using simple array notations that include elemental function capabilities.
- Leverage existing serial tools: The serial semantics of Intel Cilk Plus allows you to debug in a familiar serial debugger.
- Scale for the future: The runtime system operates smoothly on systems with hundreds of cores. Tools are available to analyze your application and predict how well it will scale.
As multicore systems become prevalent on desktops, servers and even laptop systems, new performance leaps will come as the industry adopts parallel programming techniques. However, many parallel environments consist of confusing, complex and error-prone rules and constructs. The Intel Cilk Plus language extension, built on the Cilk technology developed at M.I.T. over the past two decades, is designed to provide a simple, well-structured model that makes development, verification and analysis easy. Because Intel Cilk Plus is an extension to C and C++, programmers typically do not need to restructure programs significantly in order to add parallelism.