Numa Speicher Optimierung

Stefan 0815

Enthusiast
Thread Starter
Mitglied seit
18.02.2013
Beiträge
633
Hallo da draußen!

Ich habe gerade mit meinem ersten dual CPU system angefangen und allmählich erkenne ich die Nachteile eines solchen Systemes relativ gut.
Soll ich, ob ich die Numa Optimierung für "0815" Software, die jedoch mehrere Kerne belasten kann (Handbrake, Matlab, Spiele) lieber ausschalten?

Oder ignorieren nicht Numa optimierte Programme die Kernzuteilung des Speichers einfach, sodass das deaktiviern der Funktion nur für Numa optimierte Software nachteilig ist, und somit ein deaktivieren sinnfrei ist?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
In meinen vor einigen Jahren durchgeführten Tests hat das Abschalten von NUMA nur geschadet - nicht geholfen.
 
Das Freut mich, dass du das getestet hast. Dann muss man nicht das Rad neu erfinden ;-)

Hast du den Test irgendwo veröffentlicht, oder kannst du kurz beschreiben mit welchen Anwendungen du das geprüft hast?
Oder war der Test sehr speziell auf den Schachcluster ausgelegt?
 
Zuletzt bearbeitet:
Es waren nur Schach Programme - solche mit NUMA Unterstützung und welche ohne. Mit eingeschaltetem NUMA support waren die Programme mit NUMA Unterstützung ~2% schneller. Also kein großer Effekt.
 
Das hatte ich vor längerer Zeit auch mal wissen wollen und habe dann einfach folgendes gemacht:
Klick mich
Dort findest du Benchmarks mit verschiedener Software. ;)

Conclusion: Das kommt ganz auf die Software an, bei nicht dementsprechend optimierter Software ist der Unterschied aber meist ziemlich gering, im Zweifelsfall an lassen.
 
Zuletzt bearbeitet:
Oder ignorieren nicht Numa optimierte Programme die Kernzuteilung des Speichers einfach, sodass das deaktiviern der Funktion nur für Numa optimierte Software nachteilig ist, und somit ein deaktivieren sinnfrei ist?
Wenn Programme auf NUMA optimiert sind, ist der Geschwindigkeitsunterschied dramatisch. Wenn ein normales nicht optimiertes Programm auf einem NUMA System läuft sollte man unbedingt die Speicherpolitik auf lokale Allokation stellen und dem jeweiligen Programm ausschließlich Kerne auf einem NUMA Knoten fest zu weisen, so daß das Programm niemals vom NUMA Knoten verlagert wird. Ich weiß nicht wie es unter Windows ist, unter Linux läßt sich das ganze relativ einfach über die Kommandozeile lösen.

Ein NUMA optimiertes Programm alloziert Speicher dediziert auf dem jeweiligen NUMA Knoten an, um optimale Geschwindigkeit zu erzielen. Wenn der Algorithmus es erlaubt skaliert die Speicherbandbreite bei einem NUMA optimierten Programm linear mit der Zahl der NUMA Knoten.
 
Ich weiß nicht wie es unter Windows ist, unter Linux läßt sich das ganze relativ einfach über die Kommandozeile lösen.

Unter Windows läuft das generell erstmal analog. Nur bin ich mir gerade nicht ganz sicher, ob es Windows Boardmittel (neben dem GUI Taskmanager) gibt, die das für quasi jegliche Software macht. Im Taskmanager kann man via Maus ja schön die Haken setzen, kostet halt Zeit und macht Aufwand. Wäre aber machbar... Zur Not muss man sich ein externes Tool besorgen (oder selbst Programmieren) was einem die Arbeit abnimmt und die Zuteilung bewerkstelligt.


@Stefan 0815
was vielleicht noch zu erwähnen wäre, du solltest, wenn möglich, bei nicht NUMA Node optimierter Software dafür sorgen, das der Speicherplatz im RAM, den die Software benötigt, von genau einem NUMA Node bereit gestellt werden kann.
Also sagen wir, deine Software will ca. 30GB RAM belegen, du hast aber über zwei NUMA Nodes verteilt nur 32GB im System stecken. -> dann ist das ne äußerst ungünstige Situation. Besser wäre hier, 32GB pro NUMA Node bereit zu stellen...

Was es halt auch rauszufinden gilt, je nach Software und Faktor der Threadskalierung kann dir aber selbst ne nicht NUMA Node optimierte Software immernoch Vorteile bringen, selbst in der ungünstigsten Konstellation. Das geht halt bis zu dem Punkt, wo die Leistungsskalierung über die logischen Threadeinheiten der CPUs derart abflacht, das mehr Threads keine mehr Leistung bringen.
So wird es wohl idR so laufen, dass eine Software ausschließlich "gepinnt" an einen NUMA Node ziemlich brauchbar skaliert über die Threads. Greift diese Software auf zwei NUMA Nodes zurück, wird die Skalierungskurve oftmals deutlich abflachen... Es sollte normal aber häufiger immernoch eine absolute Mehrleistung bei rum kommen also wenn du nur einen einzigen NUMA Node bedienst.

Sofern es deine Software aber zulässt, das du mehrere Sachen "unterschiedlicher Art" gleichzeitig ausführst, dann wäre die Option wie von jdl angedacht wohl der Optimalfall. Bei zwei NUMA Nodes könntest du zwei Stücken Software je auf einem NUMA Node pinnen, hast im optimalfall die dort beste Skalierung der Performance und belastest beide NUMA Nodes entsprechend "stark" mit der in Summe am Ende besten Performance.
 
Vielen Dank für deine sehr ausführliche Antwort!

Ich werde in der Nächsten Zeit mal etwas genauer auf den Taskmanager achten und meine auch irgendwo noch eine Software gefunden zu haben, die die Einstellungen der CPU Zuordnung dauerhaft behällt.
Mein angeschafftes System habe ich eher mal zum ausprobieren gekauft und um mal ein "zuverlässiges" System zu haben (Habe für die Umstellung I930 zu 2xX5650 gerademal 100€ gezahlt).
Daher enttäuscht mich der gefühlte "fehlende" Leistungszuwachs im Moment nicht.

Adobe Lightroom scheint zwar die Kerne übergreifend auszunutzen aber "superschnell" ist es auch nicht geworden. Die Foobar konvertierung skaliert jedoch bestens mit der Kernanzahl (Ein titel pro Kern...).
In Matematiksoftware muss ich zunächst lernen die Tricks für die Multicoreoptimierung erstmal "etwas" zu beherschen, sonst läuft die singlecore.
Mein aktuelles Lieblingsspiel (habe schon lange nichts mehr gespielt!) hat mich ganz enttäuscht, Warthunder läuft nur auf einem Kern.
Handbrake kodiert auch fleißig mit allen Kernen. Bis die unterstützung von Grafikkarten oder die speziellen CPU beschleunigungen ZUFRIEDENSTELLEND unterstütz wird scheine ich mit den zwei Kernen also gut zu fahren. Ich habe schon so viele schnellere Konvertierungsprogramme gefunden, die sich beim Umcodieren von HD Fernsehaufnahmen mal ordentlich verhaspeln, wenn es Bildfehler gibt.

@Grafiktreiber
Dein Google Link ist ja ganz nett, nur leider finde ich dort nicht die Tests, die für mich jetzt in erster Linie entscheidend sind.
Meinem Aufgabengebiet nach, bin ich eher ein Ottonormalverbraucher, als dass ich in einer Firmenumgebung arbeite.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh