Intel® Cilk™ Plus

New with Cilk .... need a little help


I have this application which according to Intel advisor should get about 3.5 of speedup using 4 threads.

Using OpenMP I was able to get only ~ 2.35 with 2 and 2.85 with 4 threads.

Now I am learning and applying Cilk to see if I can improve this performance.  My compiler is icc (ICC) 14.0.0 20130728.

I am using only cilk_for (similar to what I did with openMP). Running the application with one processor I get the same performance with Cilk and openMP. However adding more processors hurts the Cilk performance big time.

Variable-length arrays and CilkPlus

It seems that I can use OpenMP together with CilkPlus array notation on variable length arrays, but not _Cilk_for.  This is under the Intel compiler with build  I get messages like:

junk.cpp(10): error: a variable captured by a lambda cannot have a type involving a variable-length array
              a[j][i] = (a[j][i] - __sec_reduce_add(a[0:j][i]*a[0:j][j])) / x;

Array notation and parallelisation

Does the Intel compiler currently attempt to parallelise array notation expressions?  If it does, I am failing dismally in persuading it to do so.  I use CILK_NWORKERS=4, and print both the wall clock and CPU.

If not, what would the recommended alternative be in any case where that were desirable?  To back off to loops and use OpenMP?

Cilkview bug


   I'm getting some suspicious cilkview output (pasted below).  Notice that the work calculated in the cilk parallel region is implausibly large.

I'm using:

Cilkview version 2.0.0, build 3566, built Aug 20 2013 13:58:06
Using PIN 2.12, Build 59761

gcc (GCC) 4.8.0 20120618 (experimental)

gcc -o qsort.64 -O3 -g -Werror -gdwarf-3 -std=gnu99 -m64 -I/afs/ qsort.c -lcilkrts -ldl

Cilk array notation prevents gcc auto-vectorization?

Hi all,

I am having a problem getting Cilk array notation to play well with Gcc auto-vectorization (i.e., -ftree-vectorize).  For example,

(Let's refer to the code snippet at as copy.c).

If I run

> gcc -fcilkplus -lcilkrts -Wall -O3 copy.c

cilk/cilk.h: no such file or directory

I thought I start a new thread since it doesn't pertain to the bug anymore. I am getting this: 

cute_rj@Cute:~/code/src/sort/build$ make
g++ -std=c++0x -O2 -DHAVE_OPENMP=1 -DHAVE_CILKPLUS=1 -fcilkplus -lcilkrts -I.. ../common/test_sort.cpp -ltbb -lgomp -lrt -o test_sort.x
../common/test_sort.cpp:9:23: fatal error: cilk/cilk.h: No such file or directory
#include <cilk/cilk.h>
compilation terminated.
make: *** [test_sort.x] Error 1

and yes my environment variables are set!

Intel User and Reference Guide

Guys, is there a pdf or a single-page version of the CilkPlus User and Reference Guide? All I can find is this link

and I have to navigate the left panel (or I'm geekly-blind and cannot find the link)... I'd just like a single-page with everything on it.


S’abonner à Intel® Cilk™ Plus