Reply

Support more than 64 logical processors on Windows

0 replies

Chris

Customer, bbp_participant, community, sq-ultimate, 6 replies.

Visit profile

2 years ago #271632

The 64-bit versions of Windows 7 and Windows Server 2008 R2 and later versions of Windows support more than 64 logical processors on a single computer.

For any system with more than 64 logical threads, Windows will evenly divide the threads into “Processor Groups” such that no group has more than 64 threads. On a dual-socket system with two 28-core CPUs and 112 total threads, for example, Windows will create two processor groups, each with 56 threads. On a single socket system with 64 cores and 128 threads, two processor groups will be created, each with 64 threads.

By default on 64-bit Windows, 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.

It looks like a pretty straight-forward update per this Microsoft article: https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups

For example, I just bought a dual-processor 96-core server to run SQX on, but as the OS (Windows Server 2019) creates two 48-core processor groups, SQX will only take advantage of 48 cores, or half the processing power of the server. It would of course be ideal to use ALL available processing power, and looks like a simple code change using the PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY extended attribute.

0