std :: thread :: hardware_concurrency只检测一个物理处理器的核心

时间:2016-09-08 23:49:01

标签: c++ multithreading visual-studio

我有一个双插槽主板,有两个物理处理器,每个处理器有18个物理内核(36个逻辑)。在Window的任务管理器中,我总共有72个逻辑核心。在BIOS中,两个物理CPU都按预期列出,并启用了超线程。

当在 Visual Studio社区2015 中运行以下内容并使用C ++编译时,我只得到36作为答案:

std::cout << std::thread::hardware_concurrency();

此外,当我使用72个线程执行多线程代码时,我在Windows性能监视器中发现C ++程序只使用两个NUMA节点中的一个,而另一个物理处理器保持不变。

非常感谢任何揭露所有72个内核的帮助。

0 个答案:

没有答案