NUMBER_OF_LOGICAL_CORES does not return what it says it does.
The documentation suggests that for the cmake_host_system_information() query NUMBER_OF_LOGICAL_CORES is the total number of cores. Source: https://cmake.org/cmake/help/v3.7/command/cmake_host_system_information.html?highlight=number_of_logical_cores.
But the source code says this:
unsigned int GetNumberOfLogicalCPU(); // per physical cpu
Excerpt from Source/kwsys/SystemInformation.hxx.in
It is clear to me that the documentation is wrong.
IMHO, a new variable called TOTAL_NUMBER_OF_CORES should be introduced and NUMBER_OF_LOGICAL_CORES should be renamed to NUMBER_OF_LOGICAL_CORES_PER_PHYSICAL_CORE.