1
votes

I am running into an issue where my 32-bit command-line application, when started from Windows Command Prompt or other means, is set to only use the first 32 CPU cores on a 64-core system. Looking at that process's CPU affinity mask in Task Manager, I can see that only the first 32 CPUs are checked, and the last 32 CPUs are unchecked.

I made sure my code doesn't call SetProcessAffinityMask, but how can I see if any of the third party modules call this function? And would doing things like calling SetThreadPriority change the CPU affinity mask?

1

1 Answers

1
votes

According to MSDN, 32-bit applications only get access to 32 processors. Even if you're not calling the affinity APIs yourself, it's likely these are being used behind the scenes at initialization.