Intel® Cilk™ Plus

Compiling the runtime on Cygwin


I tried compiling the runtime on latest Cygwin w/ GCC 5.3, but ran into some errors which are solved with the patch below.

A few of the code samples do work well under Cygwin (e.g. Fibonacci), but some don't (cilk-reducers-demo never finishes). Unfortunately I'm at the limit of my debugging skills and time to figure out why.

Linking with cilk on OSX

On MAC OSX I link with


 At runtime it seems to expect


but I had expected it would require


However, there is versioned and a nonversioned variants:




Have I misunderstood something?



Putting Your Data and Code in Order: Data and layout - Part 2

Apply the concepts of parallelism and distributed memory computing to your code to improve software performance. This paper expands on concepts discussed in Part 1, to consider parallelism, both vectorization (single instruction multiple data SIMD) as well as shared memory parallelism (threading), and distributed memory computing.
  • Students
  • Modern Code
  • Server
  • Windows*
  • C/C++
  • Fortran
  • Intermediate
  • Intel® Advisor
  • Intel® Cilk™ Plus
  • Intel® Threading Building Blocks
  • Intel® Advanced Vector Extensions (Intel® AVX)
  • OpenMP*
  • Intel® Many Integrated Core Architecture
  • Optimization
  • Parallel Computing
  • Threading
  • Vectorization
  • A strange behavior in array operations


    When I played with array operations in Cilk Plus, I found the same assignment might return different results with gcc and g++.  For example, in array[0:5] = array[10:5], we expect that five elements 10 to 14 are copied to elements 0 to 4 in order.  There is no overlap in the example.  It works when it is compiled with g++.  However, it goes awry when it is compiled with gcc.  Actually, another five elements 10 to 6 are copied.

    Is it an error or a bug?  Thanks.


    why spawn helper cannot be inlined

    I am reading the ABI doc and also made fib working using cilk_fake.h using runtime only. One question I have is the requirement for a helper function for spawn since a cilkplus spawn is to call a function, basically, why we cannot inline the helper function. Is this for dealing with stack/frame pointer management or stack memory management (e.g. we cannot surround a spawn with a for/while loop if each spawn needs its own dedicated stack space)? any insightful comments on this for helping my curiosity ;-)



    pretty weird behaviour on using cilk_for and built-in function of arrays

    I was trying to use built-in functions for arrays in cilkplus. Consider the following code as example:

    int main()
    int a[10] = {10,3,14,7,9,5,65,12,6,52};
    int t;
    t = __sec_reduce_max(a[0:3]);
    cilk_for(int i=0;i<11;i++)
    return 0;


    On compiling the above program i got "internal compiler error: Segmentation fault"

    Race conditions in cilk_for

    Hi everyone,

    I'm trying to run a code using cilkplus. The idea is to initiallize an array in parallel, using cilk_for, and then read it, in parallel again, to compute some results. However, I have race conditions between instruction on the two consecutive cilk_for. Above you can find an example code that reproduces that error:

    Subscribe to Intel® Cilk™ Plus