Werbung
Vor einigen Tagen tauchten vermeintliche Leistungs-Probleme mit der NUMA-Implementierung (Non-Uniform Memory Access) bzw. dem Windows Scheduler bei der Verwendung von EPYC- und Ryzen-Threadripper-Prozessoren mit vier aktiven Dies auf.
Die Problematik ist die Folgende: Der Scheduler von Windows legt bei mehr als einem NUMA Node, ein sogenannter Best NUMA Node, fest. Neue Threads werden primär diesem einen Knoten zugeteilt, bereits vorhandene Threads auf die weiteren Knoten verteilt. Besitzt eine Anwendung nun mehr als einen Thread, kann dies dazu führen, dass das System zu einem Großteil damit beschäftigt ist, die Thread-Zuteilung auszuführen. In der Folge sind einige Programme deutlich zu langsam.
Hier kommt nun die Coreprio getaufte Software ins Spiel. Als NUMA Dissociater überwacht die Software alle aktiven Threads und legt diese im Falle der Ryzen-Threadripper-Prozessoren auf bestimmte NUMA-Knoten fest.
Noch vor Bekanntwerden der Problematik haben AMD und Microsoft offenbar an einer Lösung des Problems gearbeitet. Für den Windows Scheduler gibt es bereits einen Hotfix, der nur für Dual-NUMA-Systeme greift. Einen Best NUMA Node gibt es dann nicht mehr und mehrere Threads einer Anwendung werden nicht mehr derart verschoben. Für Systeme mit drei und mehr NUMA-Knoten, wie eben den Ryzen Threadripper 2990WX (Test) und Ryzen Threadripper 2970WX (Test), ist dies jedoch noch keine Lösung.
AMD sieht die in Coreprio angewendete Methode schon recht nahe einer möglichen Lösung für den Windows Scheduler bei mehr als zwei NUMA-Knoten. Man geht hier aber nicht näher ins Detail, wie eine Umsetzung letztendlich aussehen wird. Letztendlich hängt es nun von AMD und Microsoft ab, wann und wie es zu einer finalen Lösung des Problems kommt. Betroffen sind eigentlich nur die Ryzen-Threadripper-Prozessoren der zweiten Generation mit mehr als zwei aktiven Dies sowie die EPYC-Prozessoren in gleicher Konfiguration.
Mit den EPYC-Prozessoren der zweiten Generation sowie den möglichen Ryzen-Threadripper-Prozessoren der dritten Generation wird es aufgrund des Chiplet-Designs keine Probleme in der Thread-Zuteilung auf verschiedene NUMA-Knoten geben, denn diese Prozessoren werden als ein NUMA-Knoten umgesetzt und sind nicht mehrere NUMA-Entitäten.