Antwort

Unterstützung von mehr als 64 logischen Prozessoren unter Windows

0 Antworten

Chris

Kunde, bbp_participant, community, sq-ultimate, 6 Antworten.

Profil besuchen

vor 2 Jahren #271632

Die 64-Bit-Versionen von Windows 7 und Windows Server 2008 R2 und spätere Versionen von Windows unterstützen mehr als 64 logische Prozessoren auf einem einzelnen Computer.

Bei jedem System mit mehr als 64 logischen Threads teilt Windows die Threads gleichmäßig in "Prozessorgruppen" auf, so dass keine Gruppe mehr als 64 Threads hat. Bei einem Dual-Socket-System mit zwei 28-Core-CPUs und insgesamt 112 Threads erstellt Windows beispielsweise zwei Prozessorgruppen mit jeweils 56 Threads. Auf einem Single-Socket-System mit 64 Kernen und 128 Threads werden zwei Prozessorgruppen mit jeweils 64 Threads erstellt.

Unter 64-Bit-Windows ist eine Anwendung standardmäßig auf eine einzige Gruppe beschränkt. Eine Anwendung, die die Verwendung mehrerer Gruppen erfordert, um auf mehr als 64 Prozessoren laufen zu können, muss explizit festlegen, wo ihre Threads laufen sollen, und ist dafür verantwortlich, die Prozessoraffinitäten der Threads auf die gewünschten Gruppen zu setzen.

Laut diesem Microsoft-Artikel handelt es sich um ein ziemlich unkompliziertes Update: https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups

Ich habe zum Beispiel gerade einen Dual-Prozessor-Server mit 96 Kernen gekauft, auf dem SQX laufen soll. Da das Betriebssystem (Windows Server 2019) jedoch zwei Prozessorgruppen mit 48 Kernen erstellt, nutzt SQX nur 48 Kerne oder die Hälfte der Verarbeitungsleistung des Servers. Ideal wäre es natürlich, ALLE verfügbare Verarbeitungsleistung zu nutzen, und es sieht nach einer einfachen Codeänderung unter Verwendung des erweiterten Attributs PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY aus.

0