Intel® Cilk™ Plus

How to use the cilkview?

I have a C search application  on a centos 6.x 64 bit linux server that I just installed the cilkplus compiler on to take advantage of more cpu/cores. I've added the cilk_spawn function to some recursive scanning functions in my program.  After re-compiling the search application with the cilkplus gcc compiler, the search program is working as intended without any seg faults or any other errors.

My question is how do I use the cilkview analyzer? I want to if cilkplus/spawning is helping my search application and if so by how much?





developer documents for Cilk Plus


First I would like to thank you all for the awesome cilk plus tools you have open source in GCC and LLVM.

I am trying to study the runtime library and finding it a bit difficult to follow the execution in a sample application.

Are there any developer documents available? A wiki perhaps.

Specifically, I am trying to trace the execution path for cilk_spawn which is a key word. Any helpful links to get me started would be really great!



Question about steal-continuation semantics in Cilk Plus, Global counter slowing down computation, return value of functions

What I understood about steal-continuation is, that every idle thread does not actually steal work, but the continuation which generates a new working item.
Does that mean, that inter-spawn execution time is crucial? If 2 threads are idle at the same time, from what I understand only one can steal the continuation and create its working unit, the other thread stays idle during that time?!

As a debugging artefact, I had a global counter incremented on every function call of a function used within every working item.

simple cilk_spawn Segmentation Fault

I'm having difficulty running a simple test case using cilk_spawn.  I'm compiling under gcc 4.9.0 20130520.

The following fib2010.cpp example, executes in 0.028s without cilk and takes 0.376s with cilk as long as I set the number of workers to 1.  If I change the number of workers to any number greater than one, I get a segmentation fault.

How can I parallelize implicit loop ?

I have the loop, inside its body running the function with array member (dependent on loop index) as an argument, and returning one value.
I can parallelized this loop by using cilk_for() operator instead of regular for() - and it is simple and works well.  This is explicit parallelization.  
Instead of explicit loop instruction I can use Array Notation contruction (as shown below) - it is implicit loop.
My routine is relatively long and complecs, and has Array Notation constructions inside, so it cannot be declared as a vector (elemental) one.

Patches or configure options to build the trunk on arm


I want to build the trunk on an embedded system supporting armv7 instructions. The build was accomplished without errors but cilk/cilk.h and libcilkrts weren't built. I checked out the patches available on the internet they do support non x86 architectures but I think just i386 not arm.

Are there other patches or config options to add while building so that I get those libraries along with the build 


Iscriversi a Intel® Cilk™ Plus