Intel® Cilk™ Plus

Using reducers

I may not have found the right documentation, but page 13 of the CilkPlus specification invites me to write code like the following:

template<class T>
class summation : public cilk::monoid_base<T> {
    typedef T value_type;
    inline void reduce (T * left, T * right) const {*left += *right;}
    inline void identity (T * loc) const {*loc = 0;}

I can find nothing stating that I should include a header, and it objects:

N-dimensional array parameters and CilkPlus gcc

I am checking out CilkPlus for usability, with the aim of giving a course on it, and want to ensure that what I teach is portable. Also, depending on where and how I give it, I may or may not have the Intel compilers on the system so need to be able to use CilkPlus gcc.

One of the more important aspects is matrix operations, which are very heavily used in scientific programming.  The following function definition is accepted by icc -std=c99, icpc and the CilkPlus version of gcc -std=c99 but not its g++.

    void fred (int m, int n, double a[m][n]);

Ray Tracing with Cilk Plus


I'm trying to parallelize a Ray Tracing code that I've found here (in C++):

I'm using Visual Studio 2012 + Intel C++ Composer XE. To run de executable, what I'm doing is to build with VS 2012, and run with cmd like this:

cd "path to the debug folder"

ray.exe 1 > fig.ppm

Installing cilkplus on Mac Os X Mountain Lion


   I am trying to install cilkplus on Mac Os X Mountain Lion without too much success. First of all I have dowloaded the cilkplus branch from the gcc git repo and then I have configured as follows:

../configure --prefix=/opt/gcc-cilk --enable-languages=c,c++ --disable-multilib

The first hurdle was the presence of an old compatibility flag that I fixed

Any implementation of ZCA / __notify_intrinsic toggles WITHOUT Pin?

The specification for zero/low cost annotations lays out everything you need to know to find probe-ready points in the binary and modify them.

However, the only implementation I'm aware of that actually does this is libzca.  Libzca uses Pin and supports only a limited usage model -- you can insert function calls at __notify_intrinsic probe-ready only at load-time, before Pin does its binary translation thing.

Performance problem when apply cilk_spawn with ippiFFT function

We have a method using ippiFFT to perform forward and inverse FFT of an Image. This method calls ippiFFT 3 times. We try apply cilk_spawn with purpose improve performance of FFT processing, but processing speed of the method is slower than source without cilk_spawn (decreased about 2 times). We don't known what is the problem, please help us!

Article about a cilk_spawn optimization in Cilk Plus/LLVM

The Cilk Plus/LLVM developers have recently added support for all of the tasking keywords in Intel® Cilk™ Plus - cilk_spawn, cilk_sync, and cilk_for - and we wanted to take the opportunity to talk about some of the work that went into their implementation.  I have published an article about one of the optimizations that is done to reduce spawn overhead in Cilk Plus/LLVM (also performed by Intel® Composer XE), which also gives a peek under the hood at how spawn works:

Question about __cilkrts_leave_frame()


I am hacking on Cilk to add IVars to the language and as I was looking through the source code, I was wondering why in cilk-abi.c in the runtime folder there is an atomic op on the clearing of the detached flag of the returning stack frame that is called in __cilkrts_leave_frame(). Is there any contention for this flag? 

Assine o Intel® Cilk™ Plus