After deep tests Louis Zulli found on his OCTAL machine that
best setup for an 8 core CPU is as following
"Threads" = 8
"Minimum Split Depth" = 6 or 7 (mSD)
"Maximum Number of Threads per Split Point" = not important (MNTpSP)
Here are testing results:
mSD7 (8 threads) vs mSD4 (8 threads): 291 - 120 - 589
mSD6 vs mSD7: 168 - 188 - 644
mSD6-MNTpSP5 vs mSD6-MNTpSP6: 172 - 172 - 656
SF-7threads vs SF-8threads: 179 - 204 - 617
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
- // Limit the default value of "Threads" to 7 even if we have 8 CPU cores.
- // According to Ken Dail's tests, Glaurung plays much better with 7 than
- // with 8 threads. This is weird, but it is probably difficult to find out
- // why before I have a 8-core computer to experiment with myself.
- assert(options.find("Threads") != options.end());
+ // Set optimal value for parameter "Minimum Split Depth"
+ // according to number of available cores.
assert(options.find("Minimum Split Depth") != options.end());
assert(options.find("Minimum Split Depth") != options.end());
- options["Threads"].defaultValue = stringify(Min(cpu_count(), 7));
- options["Threads"].currentValue = stringify(Min(cpu_count(), 7));
+ Option& msd = options["Minimum Split Depth"];
+
+ if (cpu_count() >= 8)
+ msd.defaultValue = msd.currentValue = stringify(7);