Announcements

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

News
Forums
January 23, 2017: New Intel Cilk Plus SDK is now available

Build 4501 of the Intel Cilk Plus SDK was released on Monday, 01-23-2017. This version includes 64-bit Cilk screen/view binaries for Linux* and OS X* operating systems.

https://www.cilkplus.org/download

June 3, 2016: New Cilk Plus runtime release

A new version of open-source Intel Cilk Plus runtime library (build 4467) is available for download now. This version contains build fix for Cygwin* and SPARC* support submitted by the community.

https://www.cilkplus.org/download#runtime-sources

November 11, 2015: New Intel Cilk Plus SDK is now available

Build 4421 of the Intel Cilk Plus SDK was released on Wednesday, 11-11-2015. This version supports the latest versions of Linux*, OS X*, and Windows* operating systems.

https://www.cilkplus.org/download

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.
!$OMP PARALLEL DO    &

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 (http://groups.csail.mit.edu/sct/wiki/index.php?title=Cilk_Plus_Installat...), 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?

I recently tried the updated Intel® Cilk™ Plus in the Intel® C++ Compiler. I liked the lower overhead from using Cilk Plus spawning compared to that of OpenMP* task. I'm looking forward to using Cilk Plus Array Notations. The concepts behind Cilk Plus – simplification of adding parallelism – is really great. Thanks for offering this easy-to-use capability!
David Carver
Texas Advanced Computing Center

Documentation

Reference Manual
FAQs
API and Reducer Library
Open Specifications

Resources

Tutorial
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