5.3.2. Simultaneous Multi-Threading

Today’s processor cores have a large number of arithmetic and logic units, that can be used in parallel, among other units there are (depending on the specific POWER processor):

    • 4 ALU Einheiten (Arithmetic-Logic-Unit)
    • 4 FP Einheiten (Floating-Point)
    • 8 Fetch Einheiten (Laden von Instruktionen)
    • 6 Decode Einheiten (Dekodieren von Instruktionen)

It is not possible to use all of these units with just one thread. A thread can only use a few of these units at a time. In order to achieve a higher utilization of the available computing units, several threads must be executed in parallel. With the new generations of POWER processors, the number of processing units has been continuously increased in order to ultimately enable SMT8 (execution of up to 8 threads in parallel). The processor cores can vary the number of SMT threads at any time. If only one thread is available, it is possible to switch from SMT8 to running only one thread at short notice. It is possible to switch from SMT8 to the execution of just one thread, if only one operating system thread is available.

Under the AIX operating system, the SMT setting can be queried with the smtctl command:

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 #

The displayed processors 0 to 15 are so-called logical processors. 8 of these logical processors belong to one processor core. The logical processors are the SMT threads. If the number of SMT threads per core is to be reduced to 4, this can be done with the smtctl command and the “-t” option:

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 #

To ensure that SMT4 is also used after the next reboot, the bosboot command must be started once, otherwise the original configuration with SMT8 applies again after the next reboot!