I wrote a simple benchmark that fills two vectors with a sequence of randomly computed numbers. I'm comparing tbb, cilk, and std::async. The results I get are (milliseconds)
time cilk: 3725 time async: 2367 time tbb: 2397 time serial: 4610
I compiled with (icc 2016)
icc -std=c++14 -xHost -O3 -tbb -pthread benchmark.cpp
And I'm running on
uname -a Linux localhost 3.10.25-gentoo #1 SMP Wed Jan 29 22:44:07 EST 2014 x86_64 Intel(R) Xeon(R) CPU E3-1245 v3 @ 3.40GHz GenuineIntel GNU/Linux
Why is cilk so much slower than tbb and std::async?