Donnerstag, 10. April 2008

Quad-Core Prozessor-Zuweisung

Der eigentliche Sinn eines Quad Core Prozessors besteht darin das man mehrere CPU Kerne hat und jeder CPU Kern optimalerweise eine eigene WoW Session zugeteilt bekommt. Somit imitiert man mehrere PCs bei denen ja ebenfalls jede WoW Session eine eigene CPU hat.

Um dies zu realisieren muss man jeder Session von WoW sagen welcher CPU Kern sie nutzen soll. Diese Einstellung wird in der config.wtf von Warcraft gemacht. Dies ist erneut ein klassisches Beispiel warum man für jede WoW Session eine eigene Kopie auf der Festplatte haben sollte da man nun für jedes WoW die config.wtf anders konfigurieren muss.

Konfiguration der config.wtf:

Erste Session (c:\WoW1\WTF\config.wtf) :
SET processAffinityMask "1"

Zweite Session (c:\WoW2\WTF\config.wtf) :
SET processAffinityMask "2"

Dritte Session (c:\WoW3\WTF\config.wtf) :
SET processAffinityMask "4"

Vierte Session (c:\WoW4\WTF\config.wtf) :
SET processAffinityMask "8"


Was genau passiert nun wenn man diese Einstellung macht?

Anhand des Schaubildes lässt sich dies recht einfach darstellen:

╔══════╦════════╤════════╤════════╤════════╗

║ Mask ║ Core 1 │ Core 2 │ Core 3 │ Core 4 ║

╠══════╬════════╪════════╪════════╪════════╣

║ 1 ║ ██ │ ░░ │ ░░ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 2 ║ ░░ │ ██ │ ░░ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 3 ║ ██ │ ██ │ ░░ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 4 ║ ░░ │ ░░ │ ██ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 5 ║ ██ │ ░░ │ ██ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 6 ║ ░░ │ ██ │ ██ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 7 ║ ██ │ ██ │ ██ │ ░░ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 8 ║ ░░ │ ░░ │ ░░ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 9 ║ ██ │ ░░ │ ░░ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 10 ║ ░░ │ ██ │ ░░ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 11 ║ ██ │ ██ │ ░░ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 12 ║ ░░ │ ░░ │ ██ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 13 ║ ██ │ ░░ │ ██ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 14 ║ ░░ │ ██ │ ██ │ ██ ║

╟──────╫────────┼────────┼────────┼────────╢

║ 15 ║ ██ │ ██ │ ██ │ ██ ║

╚══════╩════════╧════════╧════════╧════════╝

Die Nummer am Anfang ist der Wert der bei der processAffinityMask eingetragen werden muss. Die dunklen Quadrate markieren hierbei das dieser Prozessor verwendet wird. Helle Quadrate bedeuten das der Prozessor bei dieser Einstellung nicht verwendet wird

Man könnte somit z.B. über SET processAffinityMask "15" jede WoW Session jeden Core benutzen lassen. Da ich aber 4 Cores habe und nur 4 WoW Sessions laufen lasse weise ich jede WoW Session einem eigenen Core zu.

Sollte man auf einem Quad Core alle 5 Instanzen von WoW laufen lassen, dann sollte man
  • die erste WoW Session dem zweiten Core zuordnen
  • die zweite und dritte WoW Session dem dritten Core zuordnen
  • die vierte und fünfte WoW Session dem vierten Core zuordnen
Der erste Core bleibt hierbei dann frei für z.B. Programme wie Windows, Fraps, Keyclone, Teamspeak etc.

1 Kommentare:

Orishâ (Dethecus) hat gesagt…

Ein sehr guter und hilfreicher Post bezüglich der Prozessor-Zuweisung. Da trennt sich der Spreu vom Weizen wie man so schön sagt. Vielen Dank