Very strange, but if I set CILK_NWORKERS to 1 in my Core 2 Duo processor, I get same time, as CILK_NWORKERS=2. And I see in task manager that 2 cores are works. I want to execute Cilk++ program with 1 thread(worker) and compare result with 2 threads(workers). I print this parameter in my program with __cilkrts_get_nworkers() function and it's sets correctly. Anybody knows what really happens if I set CILK_NWORKERS? It's seems that Cilk++ dont use this parameter as follows.
For more complete information about compiler optimizations, see our Optimization Notice.