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


Threading with Intel® Cilk™ Plus

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
August 21, 2013: The Intel Cilk Plus SDK now includes support for Mac OS

Build 3566 of the Intel Cilk Plus SDK was released to the Cilk Plus website on Tuesday, 20-Aug-2013. It introduces support for Mac OS, in addition to the traditional support for Windows* and Linux*.

http://www.cilkplus.org/download

August 8, 2013: GCC 4.8 binaries now available

Binary versions of the GNU Compiler Collection (GCC) C and C++ 4.8 compilers with the cilkplus extension are now available from the Download page.  The binaries support the x86-32 and x86-64 architectures on Ubuntu* Linux*. The source for these compilers is available at http://gcc.gnu.org/svn/gcc/branches/cilkplus-4_8-branch  .

http://www.cilkplus.org/download#gcc-development-branch

 

 

July 10, 2013: Why is Cilk™ Plus not speeding up my program? (Part 2)

One of the most frequently-asked questions in the Cilk Plus forum is:

I modified my code to use Cilk Plus, and it is not speeding up over the serial version the way I think it should be. What is going wrong?

Jim Sukha discusses the second 5 of 10 common reasons a Cilk program doesn't speed up the way the developer expects.

http://software.intel.com/en-us/articles/why-is-cilk-plus-not-speeding-u...

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?

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

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