Linux 单个Windows进程无法使用我的安装程序的所有80个可用线程,为什么?

Linux 单个Windows进程无法使用我的安装程序的所有80个可用线程,为什么?,linux,windows,multithreading,numa,hyperthreading,Linux,Windows,Multithreading,Numa,Hyperthreading,我在一台双Xeon 6138计算机上安装了Linux和Windows 10,该计算机具有64GB的RAM。 我无法立即访问计算机(因为锁定),但我坚信Windows版本是Windows 10 Enterprise。该系统最近一次更新是在2018年末,而不是之后 Xeon 6138规格在这里可用(基本上,每个CPU有20个内核,一个CPU总共有40个HT线程,在我的双设置中有80个): 当我在此设置上在Linux中运行CPU密集型程序时,我的系统的所有80个线程都被使用(请参阅附图) 我的问题是

我在一台双Xeon 6138计算机上安装了Linux和Windows 10,该计算机具有64GB的RAM。 我无法立即访问计算机(因为锁定),但我坚信Windows版本是Windows 10 Enterprise。该系统最近一次更新是在2018年末,而不是之后

Xeon 6138规格在这里可用(基本上,每个CPU有20个内核,一个CPU总共有40个HT线程,在我的双设置中有80个):

当我在此设置上在Linux中运行CPU密集型程序时,我的系统的所有80个线程都被使用(请参阅附图)

我的问题是:当我在Windows 10上运行相同的程序时,使用VC++2017编译,这个过程只能使系统上可用的80个线程中的40个达到饱和

为什么,我如何使用全部80个线程?(我知道Windows上有处理器组的概念,但我使用的大多数程序根本不知道处理器组,我只知道我不能改变这一点)


您已正确识别出它与处理器组相关。您已声明不能更改程序,这意味着:“默认情况下,应用程序仅限于单个组。。。需要使用多个组才能在64个以上处理器上运行的应用程序必须明确确定在何处运行其线程,并负责将线程的处理器亲缘关系设置为所需的组“@Damien_the_unsiver如果我在BIOS中禁用NUMA会发生什么?