by Ilya Mirman, Cilk Arts
Summary: Cilk++ vs. OpenMP
If your code looks like a sequence of parallelizable Fortran-style loops, OpenMP will likely give good speedups. If your control structures are more involved, in particular, involving nested parallelism, you may find that OpenMP isn’t quite up to the job:
* Cilk++ has nested parallelism that works and provides guaranteed speed-up. OpenMP has nested parallelism, but can be a “memory hog” and unreliable.
* Cilk++ guarantees space bounds. On P processors, Cilk++ uses no more than P times the space of a serial execution. In OpenMP, not so.
* Cilk++ has a serial semantics. With OpenMP, you do not have this benefit - only a subset of OpenMP supports serial semantics.
* Cilk++ has a solution for global variables (a construct we invented called “hyperobjects”). OpenMP does not.



1 response so far ↓
1 Comparing Cilk++ and OpenMP | insideHPC // Feb 27, 2009 at 3:32 pm
[...] points us to an article at Cilk Arts comparing some of the differences between their parallel environment, [...]