The GUI does not set this value.
Until 1.6.3 we used what is now called builtin_cpu_count() in misc.cpp to detect the number of cores, this works but has the problem that _if_ hyper threading is enabled it _usually_ reports the double of the real physical cores.
So this time we add function HT_enabled() to detect hyperthreading and, in this case, divide by two the number of reported CPUs, see cpu_count().
The idea is that if you have, say 4 physical cores, but with HT enabled the builtin_cpu_count() returns 8 then you really want to consider only 4 cores for optimal performance because SF, as also all the other SMP engines works best if the number of CPU is set to the real physical cores, not the "logical" ones when HT is enabled.
The problem that is arising is that function HT_enabled() is broken at least for some i7 CPU models.
So we have two options:
1) Fix HT_enabled() to works always: but this is very difficult because, reading Intel documentation, the proper way to detect HT is brain damaged complex (this time Intel made a real idiotic decision with HT detection design). Current routine works always on older types of CPU, but newer ones require a much more complex approach.
2) Remove HT_enabled() entirely and revert to 1.6.3 behaviour. In this case people should remember of disable HT or, when HT is enabled to manually set the correct number of cores through UCI options "threads" to the number of real cores (that normally is the half of what is reported with HT enabled).
_________________
"No one is never ever truly gone as long as you remember them "