5.3.2. Simultaneous Multi-Threading
Heutige Prozessor-Kerne haben eine Vielzahl von Rechenwerken, welche parallel genutzt werden können, unter Anderem:
- 4 ALU Einheiten (Arithmetic-Logic-Unit)
- 4 FP Einheiten (Floating-Point)
- 8 Fetch Einheiten (Laden von Instruktionen)
- 6 Decode Einheiten (Dekodieren von Instruktionen)
- …
Es ist nicht möglich all diese Einheiten mit nur einem Thread auszulasten. Ein Thread kann immer nur einige wenige dieser Einheiten zu einem Zeitpunkt verwenden. Um eine höhere Auslastung der verfügbaren Recheneinheiten zu erreichen, müssen mehrere Threads parallel ausgeführt werden. Mit neuen Generationen von POWER-Prozessoren wurde die Anzahl der Recheneinheiten immer weiter erhöht, um letztlich SMT8 (Ausführung von bis zu 8 Threads parallel) zu ermöglichen. Die Prozessor-Kerne können dabei jederzeit die Anzahle der SMT-Threads variieren. Ist nur ein Thread verfügbar, kann kurzfristig von SMT8 auf die Ausführung von nur einem Thread gewechselt werden.
Unter dem Betriebssystem AIX kann die SMT-Einstellung mit dem Kommando smtctl abgefragt werden:
aix05 # smtctl
This system is SMT capable.
This system supports up to 8 SMT threads per processor.
SMT is currently enabled.
SMT boot mode is not set.
SMT threads are bound to the same physical processor.
proc0 has 8 SMT threads.
Bind processor 0 is bound with proc0
Bind processor 1 is bound with proc0
Bind processor 2 is bound with proc0
Bind processor 3 is bound with proc0
Bind processor 4 is bound with proc0
Bind processor 5 is bound with proc0
Bind processor 6 is bound with proc0
Bind processor 7 is bound with proc0
proc8 has 8 SMT threads.
Bind processor 8 is bound with proc8
Bind processor 9 is bound with proc8
Bind processor 10 is bound with proc8
Bind processor 11 is bound with proc8
Bind processor 12 is bound with proc8
Bind processor 13 is bound with proc8
Bind processor 14 is bound with proc8
Bind processor 15 is bound with proc8
aix05 #
Die angezeigten Prozessoren 0 bis 15 sind sogenannte logische Prozessoren. Jeweils 8 dieser logischen Prozessoren gehören zu einem Prozessor-Core. Die logischen Prozessoren sind die SMT-Threads. Soll die Anzahl der SMT-Threads pro Core auf 4 reduziert werden, geht dies ebenfalls mit dem Kommando smtctl und der Option „-t“:
aix05 # smtctl -t 4
smtctl: SMT is now enabled. It will persist across reboots if
you run the bosboot command before the next reboot.
aix05 #
Damit auch nach dem nächsten Reboot SMT4 verwendet wird, muß einmal das Kommando bosboot gestartet werden, ansonsten gilt nach dem nächsten Reboot wieder die ursprüngliche Konfiguration mit SMT8!