0

I have both Linux and Windows 10 installed on a dual Xeon 6138 computer with 64GB of RAM. I cannot access the computer immediately (because of the lockdown) but I strongly believe the Windows version is Windows 10 Enterprise. The system has last been updated in late 2018, and not after.

Xeon 6138 specs are available here (basically, each CPU has 20 cores, totalizing 40 HT threads for a single CPU, and 80 in my dual setup):

https://ark.intel.com/content/www/fr/fr/ark/products/120476/intel-xeon-gold-6138-processor-27-5m-cache-2-00-ghz.html

When I run a CPU-intensive program in Linux on this setup, all 80 threads of my system are used (see attached image 1).

My question is: when I run the same program on Windows 10, compiled with VC++ 2017, the process can only saturate 40 of the 80 threads available on my system.

Why, and how can I have all 80 threads used? (I know there is the concept of processor groups on Windows, but most of the programs I use are simply not processor-group aware, and I just know that I can't change that).

PBRT process using up all the 80 threads available on my setup

Martin Frank
  • 199
  • 1
  • 13
  • You've correctly identified that it's processor group related. You've stated that you can't change the programs which means [you're stuck](https://learn.microsoft.com/en-us/windows/win32/procthread/processor-groups): "By default, an application is constrained to a single group ... An application that requires the use of multiple groups so that it can run on more than 64 processors must **explicitly determine** where to run its threads and is responsible for setting the threads' processor affinities to the desired groups" – Damien_The_Unbeliever Nov 04 '20 at 11:11
  • @Damien_The_Unbeliever what happens if I disable NUMA in my BIOS? – Martin Frank Nov 04 '20 at 13:34

0 Answers0