我有一个双插槽主板,有两个物理处理器,每个处理器有18个物理内核(36个逻辑)。在Window的任务管理器中,我总共有72个逻辑核心。在BIOS中,两个物理CPU都按预期列出,并启用了超线程。
当在 Visual Studio社区2015 中运行以下内容并使用C ++编译时,我只得到36作为答案:
std::cout << std::thread::hardware_concurrency();
此外,当我使用72个线程执行多线程代码时,我在Windows性能监视器中发现C ++程序只使用两个NUMA节点中的一个,而另一个物理处理器保持不变。
非常感谢任何揭露所有72个内核的帮助。