4 ms·
Cilk++ for Linux is available for download (multithread performance-sensitive apps)
- lbrandy 18y agoI 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 18y agodo you distribute your work under GPL? If so, then you wouldn't see a change under CAPL.
- wmf 18y agoThis is not some small licensing detail; it's their entire revenue stream. Cilk++ is basically a compiler. Normally the compiler license doesn't affect your software that is compiled with the compiler, but if Cilk Arts allowed people to compile proprietary code with the free version of their compiler, there'd be no reason to pay them at all. BTW, I think ICC has a similar provision.
- lutorm 18y agoCan 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 18y ago1. 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.