Versions of Cilk

Versions of Cilk

How manyversions of Cilk are there? I knowfrom a previous post that Cilk5 is not Cilk++. But what about the paper "Convertng a Cilk Arts application to Intel Cilk Plus"

I had some explicit instructions from a previous post aboutconverting a Cilk5 program to a Cilk++ program. These instructions are not the same as those collected in the above paper.

How many versions of Cilk are out there?How do I tell which oneI am using? Whcih one should I be using?


4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The history of Cilk is that in the 1990's, it was a research project on parallelism at MIT. Eventually, they started releasing versions of the Cilk compiler (really just front-ends over gcc). Cilk5 is from this series. All of the MIT versions extend C-only, and not C++.

In 2006, some of the original developers spun off a commercial product designed to extend C++. It was called Cilk++. The company was called Cilk Arts, and we were acquired by Intel last year. Now Intel owns the Cilk++ product and distributes it, here in WhatIf. This is the version you are using.

However, for the Intel compiler, a new version of Cilk has been developed that takes into account a lot of the user feedback received at Cilk Arts. The new product is built into the Intel compiler (Linux and Windows) in version 12.0. The new Cilk is called "Cilk Plus." The "Plus" refers to an array notation that makes it really easy for the compiler to produce vectorized code. It has the unfortunate side-effect of being a little confusing since the progression appears to have been Cilk -> Cilk++ -> Cilk Plus.

That's the (brief) history.

Cilk++ is a great tool (and it's free!), but these forums are the maximum level of support you'll get from it. There are no further planned releases for it. It _was_ a commercial product, though, so it's pretty solid.

If you decide that it isn't enough, you should look into the Intel C/C++ compiler suite. It has Cilk Plus built-in, and it is better integrated with C/C++ than Cilk++ is. I'm not a salesperson, so I don't know what's what, but you should talk to a sales representative to see what kinds of packages are available to educators.

I think I understand now, it is clearer. I am curious if there is a certain paper or at least a shortdocument on the Intel website that talks about porting the code from Cilk ->Cilk++. I know and I havecited one that talks about porting the code from Cilk++ -> Cilk Plus and I stated it onone of the questions above. I just think that there is an equivalentdocument that lists porting code from Cilk ->. Cilk++.


Now that you mention it,I don't believe there is anysuch official document. However, my instructions in the other thread shouldn't lead you too far astray.

The only other point to note is that Cilk++ and Cilk Plus don't support speculation. So if you see the keywords inlet and abort, the algorithm requires modification -- not just the syntax -- when moving to Cilk++.

Leave a Comment

Please sign in to add a comment. Not a member? Join today