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
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.

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

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.

https://www.cilkplus.org/download#contributions

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.

http://www.cilkplus.org/download#open-specification

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's Cilk Plus has provided us not only with a performance boost by increasing the computation speeds but as an extension of C++ it has improved our productivity as there is hardly a learning curve involved. Our code still looks elegant, it is maintainable and extensible, and using parallelism has resulted in a 4.5x improvement!
Faisal Habib
Director of Financial Engineering & Software Development

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