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.