Why I like it:
- easy to learn (3 keywords total: cilk_spawn, cilk_sync, cilk_for)
- runtime handles thread creation, deciding appropriate number of threads based on hardware
- provably efficient work-stealing scheduler
- natively supported in GCC 5, branches available for GCC 4.8/4.9 and Clang
- comes with a race detector (guaranteed to discover determinacy/data races)
- trivial to convert your parallel code to serial (#define spawn/sync keywords -> empty string, and cilk_for -> for)
Why I like it:
- easy to learn (3 keywords total: cilk_spawn, cilk_sync, cilk_for)
- runtime handles thread creation, deciding appropriate number of threads based on hardware
- provably efficient work-stealing scheduler
- natively supported in GCC 5, branches available for GCC 4.8/4.9 and Clang
- comes with a race detector (guaranteed to discover determinacy/data races)
- trivial to convert your parallel code to serial (#define spawn/sync keywords -> empty string, and cilk_for -> for)