Russel Winder wrote:
David,
On Sun, 2011-02-27 at 10:40 -0500, dsimcha wrote:
I realized the obvious kludge and "fixed" this. Now, all benchmarks
take a --nCpu command line argument that allows you to set the number of
cores manually. This is an absolute must if running on 64. If you
don't set this, the default is whatever core.cpuid.coresPerCPU returns,
and on 64 bit this will always be 1.
I agree it is sad to have had to do this, core.cpuid.coresPerCPU should
be fixed and fixed asap.
As the name says, it is * cores per CPU *. That is _not_ the same as the
total number of cores in the machine.
The documentation probably doesn't state that strongly enough, but
currently there is no known bug in the implementation of
core.cpuid.coresPerCPU.
It's an OS issue, anyway: just because a machine has 64 cores, is no
guarantee that it will give you access to all of them. std.parallelism
shouldn't be using core.cpuid for that purpose.