Recently, I build the programs written in cilk++ on AMD, 64 bit Linux. The program compiles well, i use -m32 to get the 32 bit version. I use gcc-4.2, and g++-4.2. But I do not get any parallelism, i.e -cilk_set_worker_count switch has no effect, it seems that cilk++ compiler is not able to pick up the number of cores available ...
On the other hand, I compile the same programs on intel 32 bit Linux using same gcc-4.2 and g++-4.2 version. In this case, I build my program once again in this machine and I do get a speedup, and the switch -cilk_set_worker_count seems to work.
In both the case, I try to build on same libraries, only difference is that one is 64 bit with 32 bit output and the later one is 32 bit.
My question is : Is it possible for Cilk++ compiler to be unaware of the number of cores and if yes when does it happen ?
Does a trivial OpenMP app obtain multiple threads?
If not, then the system may be configured to limit the number of threads a process can spawn (1 thread total). or If not, environment variable might limit/disable threading or If not, you might be linking in the OpenMP stubs
The above relates to OpenMP
Cilk++ may have similar issues (check for options that my link with stubs)