<< >>
justin = { main feed , music , code , askjf , pubkey };
[ <<< last (older) article | view in index | next (newer) article >>> ]

March 3, 2020
Windows with more than 64 cores

Windows has a unique (as far as I can tell) "feature", which I have not experienced first hand but I've heard about. If your system has more than 64 cores (effectively, e.g. 40 cores each with 2 threads would count), then it divides the cores into "processor groups." By default, an application that creates threads and does no additional work has all of its threads run in the same processor group (is this always Group 0? or is it randomly assigned? I have no idea).

The significance of this is that if, for example, you have a 36 core hyperthreaded CPU (72 logical cores), then a traditionally-written multithreaded application can utilize at most 36 cores. (It's also unclear to me if the 36 cores in a processor group in this scenario are 18x2 threads each, or 36 threads on 36 unique cores).

Anyway, we're now testing a REAPER tweak to address this. If you need to implement this in your application, see SetThreadGroupAffinity(), and get ready for some fun using GetLogicalProcessorInformationEx() with RelationGroup and parsing the output to determine the group structure (the documentation for that is a bit light IMO!).

So there you go, everybody.






2 Comments:
Posted by Gio on Wed 04 Mar 2020 at 05:54 from 94.70.31.x
Hmm, very interesting...


Posted by sousastep on Fri 17 Apr 2020 at 02:07 from 68.194.88.x
I'd like to hear the music people are making on computers with more than 64 cores!


Add comment:
Name:
Human?: (no or yes, patented anti crap stuff here)
Comment:
search : rss : recent comments : Copyright © 2020 Justin Frankel