Festlegen der Affinität für mehrere Kerne auf einem Dual-CPU-System
Wir verwenden einige Systeme mit 2cpu mit 6 Kernen / 12 Threads, also insgesamt 24 Threads, für eine Vielzahl von Multitread-Simulationen. Da das Problem nicht perfekt skaliert ist, werden normalerweise 4 Probleme in Parralel mit jeweils 5 Threads ausgeführt. 4 Kerne zur Verfügung stehen, um die 4 Threads auszuführen, die die Simulationen und die Vor- und Nachbearbeitung starten. Ich habe einige merkwürdige Leistungsunterschiede für identische Simulationen festgestellt.
Meine Idee war, dass ich durch die Verwendung der Affinität die Leistung vielleicht etwas mehr regulieren und den Prozess so lenken könnte, dass er nicht über 2 CPU verteilt wird, so dass das Problem nicht über verschiedene Teile des Cache und des Speichers verteilt wird, sondern auf einen einzelnen Wert fixiert wird CPU oder Kerne auf der CPU.
Ich kann die Affinität im Task-Manager einstellen, sobald der Prozess ausgeführt wird, aber ich möchte sie in einer Batch-Datei festlegen.
zum Beispiel:
start / affinity HEXNUM myprog3.exe
Dabei ist HEXNUM beispielsweise: 1F000 (die Hex-Darstellung von 011111000000000000)
wenn das Ziel war, es auf dem Kern auszuführen: 0,1,2,3,4 von CPU2
oder HEXNUM 1F die hexadezimale Darstellung von 011111, wenn es auf Core 0,1,2,3,4 von cpu1 laufen soll.
Aber wie es scheint, funktioniert es nicht, wie ich es erwarte: Wenn ich eine Simulation mit 5 Threads ohne Affinitätsspezifikation starte, benötigt der Prozess 20-21% der CPU. Wenn ich 5 Stufen beginne, mit einer Affinität zu 6 Kernen, funktioniert es auch, aber wenn ich 5 Stufen mit einer Affinität zu 5 Kernen beginne. Es dauert nur 13% und wenn ich in den Task-Manager schaue (Windows 7 64 Pro), sieht es so aus, als würde er nur Core 1,3,5 verwenden.
Gibt es Probleme bei der Verwendung einer ungeraden Anzahl von Kernen für die Affinitätsspezifikation? oder mache ich etwas falsch?
Gibt es Personen, die Erfahrung mit der Affinitätsspezifikation haben und dabei einige Leistungssteigerungen erzielen konnten? Welche Strategien haben Sie angewendet?
0 Antworten auf die Frage
Verwandte Probleme
-
8
Sollte ich 32 oder 64 Bit für Linux wählen?
-
12
CPU-Kerne: Je mehr, desto besser?
-
5
Warum sollte mein Computer starten und plötzlich ausschalten?
-
2
Maximale CPU-Temperatur für Core 2 Duo E6400
-
4
Wie schnell ist jeder Kern in einem Dual-Core-Prozessor?
-
7
Kann ich die CPU-Geschwindigkeit meines MacBook im Akkubetrieb reduzieren?
-
2
Bietet der Intel i7 eine echte Verbesserung gegenüber seinen Vorgängern?
-
4
Kann ein 32-Bit-Betriebssystem in einem 64-Bit-Prozessor ausgeführt werden?
-
3
Ist es möglich, eine Intel Q8400-CPU in meinem ASUS P5N-EM HDMI-Mobo zu verwenden?
-
3
Sinkt durch das Überlappen einer CPU / eines Kühlkörpers tatsächlich die Temperatur?