charmplusplus / charm

The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Apache License 2.0
202 stars 49 forks source link

multicore support for Windows machines with more than 64 processors #2582

Open jcphill opened 4 years ago

jcphill commented 4 years ago

The normal Windows APIs limit processes to processor groups of 64 logical processes. To scale beyond this CPU affinity must be set. I'm waiting to hear back if the existing +pemap option can accomplish this, but even if that is the case Charm++ should exit with a cpu oversubscription error if the user tries to use more than 64 threads per process on a Windows host without cpu affinity. Docs are at: https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups https://download.microsoft.com/download/a/d/f/adf1347d-08dc-41a4-9084-623b1194d4b2/MoreThan64proc.docx

jcphill commented 4 years ago

The +pemap option does work around this issue for recent Charm++ versions using hwloc, although there are performance issues with memory allocation.