应用程序仅看到双处理器计算机上可用线程的一半

时间:2018-12-17 19:35:22

标签: linux windows multithreading cpu-architecture processor

我们最近购买了配备两个Xeon 6138 Gold CPU的双处理器Dell工作站。每个CPU有20个物理核心(40个逻辑核心),因此总共有40个物理核心或80个逻辑核心。

使用双引导设置在该计算机上安装了Linux Fedora和Windows 10 Professional。请注意,我自己尚未安装此机器。

Windows任务管理器正确显示80个逻辑核心。在/ proc下查看时,这80个内核在Linux上也可用。

在Linux上运行PBRT(https://www.pbrt.org/)时,该应用程序正确使用(并饱和了)80个内核。

但是,在Windows上,该进程仅使用了80个逻辑核心中的40个。我尚未检查,但是我很确定PBRT使用std :: thread :: hardware_concurrency(), 这是确定内核数的好方法。如果由于命令行选项而使PBRT强制使用80个线程,则Windows任务管理器不会显示所有内核都已饱和。只有一半是。在我看来,一个Windows进程无法使用全部80个逻辑内核。

这是Windows的限制吗?这真令人惊讶。

我是否应该安装特定版本的Windows,以确保所有内核都可用于单个进程?

0 个答案:

没有答案