Cilk Deprecation

Intel® Cilk™ Plus – an extension to the C and C++ languages to support data and task parallelism – is being deprecated in the 2018 release of Intel® Software Development Tools. It will remain in deprecation mode in the Intel® C++ Compiler for an extended period of two years. It is highly recommended that you start migrating to standard parallelization models such as OpenMP* and Threading Building Blocks (TBB). For more information see Migrate Your Application to use OpenMP* or TBB Instead of Intel® Cilk™ Plus. Research into Cilk technology continues at MIT's Cilk Hub.

Why Use Intel® Cilk™ Plus?

Why Use it?

Intel® Cilk™ Plus is the easiest, quickest way to harness the power of both multicore and vector processing.

What is it?

Intel Cilk Plus is an extension to the C and C++ languages to support data and task parallelism.

Primary Features

High Performance:

  • An efficient work-stealing scheduler provides nearly optimal scheduling of parallel tasks
  • Vector support unlocks the performance that's been hiding in your processors
  • Powerful hyperobjects allow for lock-free programming

Easy to Learn:

  • Only 3 new keywords to implement task parallelism
  • Serial semantics make understanding and debugging the parallel program easier
  • Array Notations provide a natural way to express data parallelism

Easy to Use:

  • Automatic load balancing provides good behavior in multi-programmed environments
  • Existing algorithms easily adapted for parallelism with minimal modification
  • Supports both C and C++ programmers

Learn more

Parallelization with Intel® Cilk™ Plus, Part 2

Intel® Cilk™ Plus: Part of the Intel C++ Compiler

Using Intel® Cilk™ Plus can improve application performance dramatically. In this example, the speed-up was 14×. How much faster could your code be?

Vectorization and Intel® Cilk™ Plus

SIMD, SSE 4, and AVX; what do they mean and why are they important to a software Developer?

Parallelization with Intel® Cilk™ Plus, Part 2

David Mackay introduces basic concepts of threading with Intel® Cilk™ Plus. Cilk Plus provides a clean and elegant interface to parallel operations.

Intel Tools for Threaded Parallelism at Super Computing

In this video, Intel's Ronald Green demonstrates the company's tools for threaded parallelism. Recorded at SC11 in Seattle.

Threading with Intel® Cilk™ Plus

Arch Robison, Cilk Plus architect, joins David Mackay to answer some basic questions for users.

Latest Posts

November 10, 2015: New Cilk Plus runtime release

A new version of open-source Intel Cilk Plus runtime library (build 4420) is available for download now. This version includes scheduler improvement for programs with low parallelism and community-contributed Raspberry Pi* port.

September 14, 2015: Version 1.06 of Cilkpub is now available

Cilkpub is a library of community-contributed Cilk Plus code. The current package (version 1.06) contains updates and fixes for the issues with the latest C++ compiler from the Intel(R) Parallel Studio XE 2016 suites.

September 9, 2013: Version 1.2 of the Intel Cilk Plus Language Extension Spec is now available

In response to questions from customers, implementors, forum contributors, and developers, the Intel Cilk Plus Language Extension Specification has been revised.  The new specification (version 1.2) contains numerous corrections and clarifications.  No new features were added, but the existing features are much more precisely described.  A redlined copy showing changes from the 1.1 spec is also available.

Hello~I have a problem, and i need some help.

I encountered this problem while compiling WRF. The error log is as follows:

../main/module_wrf_top.f90(768): error #5082: Syntax error, found 'DO' when expecting one of: PRIVATE FIRSTPRIVATE REDUCTION COLLAPSE LASTPRIVATE SHARED DEFAULT LINEAR COPYIN ...
   DO ij = 1, head_grid%num_tiles
../main/module_wrf_top.f90(768): error #5082: Syntax error, found ',' when expecting one of: <END-OF-STATEMENT> ;
   DO ij = 1, head_grid%num_tiles
../main/module_wrf_top.f90(766): error #7644: The statement or directive following this OpenMP* directive is incorrect.

Can someone help me?

    Can anyone give me some instructions on how to install Intel Cilk Plus on linux system? I tried to follow the instructions on this webpage (, but it failed. Thanks a lot for your help.  

I saw the article/guide to translate code from cilk plus to TBB or openMP. That's all fine, but the article ignores the concept of Array Notations.

Now, with the deprecation of Cilk Plus, I am wondering was is Intel's take on how we should translate code using array notations to code that doesn't use it. And of course, to keep the same performance as before.

Does simple 'for' loops around the data, coupled with some #pragmas, the preferred solution? Or should be try to go for AVX intrinsics?

Intel Cilk Plus is written with three new keywords and requires fewer source code modifications than Intel® Threading Building Blocks but is really powerful. Cilk Plus also comes with an array language extension to C/C++, providing array section notations for SIMD vector parallelism and parallel function maps for multi-threading.
Brian Reynolds
Brian Reynolds Research


Reference Manual
API and Reducer Library
Open Specifications


Intel Cilk Plus Forum
Cilk Tools
Code Samples
Sample Applications
Contributed Code
Experimental Software
GCC Binaries
Open Specifications
Papers and Presentations


Structured Parallel Programming:
Patterns for Efficient Computation

Buy Now