

Cilk++ for Linux is available for download (multithread performance-sensitive apps) - threadman
http://www.cilk.com/multicore-blog/bid/7775/Cilk-for-Linux-a-great-stocking-stuffer

======
lbrandy
I remember seeing this earlier and my thoughts are still the same. This
license scares me.

It tries to close a "loophole" in the GPL that I never considered a loophole.
Consequently, we have a brand new license that I don't want to learn because
it's mentally exhausting to be reading legal documents when I want to code. I
bothered with the GPL because there was enough points of view to feel
relatively confident in what was happening. I don't want to bother again.

I hope the painfulness of having yet-another-license outweighed the perceived
slights from the loophole they tried to close.

I'm happy to be an early adopter of a new technology. But not a new license.
No thanks.

~~~
threadman
do you distribute your work under GPL? If so, then you wouldn't see a change
under CAPL.

~~~
jws
GPL 2 or 3? The Cilk++ page says if it is "used by others" and not open source
you need to pony up. This is perfectly acceptable by GPL2.

~~~
threadman
sorry, I'm not clear- do you mean you distribute it under GPL2, or that GPL2
allows use without releasing the resulting work?

------
lutorm
Can someone who knows about the thing tell me how it's different from OpenMP?
Their little example of accelerating a loop, at least, looks much like a
standard OpenMP case.

~~~
threadman
1\. Cilk++ has nested parallelism that works and provides guaranteed speed-up.
OpenMP has nested parallelism, but it is a memory hog and not reliable.

2\. Cilk++ guarantees space bounds. On P processors, Cilk++ uses no more than
P times the stack space of a serial execution. In OpenMP, not so.

3\. Cilk++ has a race detector for debugging and software release. With
OpenMP, you are on your own.

4\. Cilk++ has serial semantics. With OpenMP, you do not have this benefit –
only a subset of OpenMP supports serial semantics.

5\. Cilk++ has a solution for global variables (a construct called
"hyperobjects"). OpenMP does not.

