Simultaneous Multithreading (SMT)
With the introduction of simultaneous multithreading (SMT) on the IBM z13®, z/VM® can dispatch work on up to two threads of an IFL core. Although IBM® SMT support includes IFLs and zIIPs, z/VM supports only IFLs. The primary objective of SMT is to increase work throughput of processor cores by dispatching two threads on one core. When multithreading is enabled and work is dispatched on multiple threads of the same core concurrently, each of the individual threads will be less productive per unit of time due to the need to share core resources. However, on average it is expected that the aggregate work performed by the core is greater than if the tasks needed to take turns using the core without multithreading enabled.
A system that is enabled for multithreading can use the CP SET MULTITHREAD command to change the activated thread count per CPU type to a value between 1 and the maximum without an IPL. The maximum activated thread count is set when multithreading is enabled and hardware does not allow it to be changed. A system that is enabled for multithreading but has only one activated thread per core performs similarly to a system with multithreading disabled.
For more information about SMT support, see z/VM: Migration Guide.
For a performance analysis on how SMT benefited z/VM workloads, see IBM: VM Performance Resources.
Three Measures of CPU Time When Multithreading Is Enabled
z/VM support for SMT provides three measures of CPU time when multithreading is enabled, because the hardware CPU timer is no longer an indication of core utilization. These three measures of CPU time are described below and are reported by accounting records and monitor records.
- Raw Time
- This is a measure of the CPU time each virtual CPU spent dispatched on a thread, and is the CPU timer information provided directly by the hardware. When all cores have only one thread, this is an accurate measure of CPU time used by the task running on the single-threaded core. When multithreading is enabled, and some cores are running with more than one thread, the CPU Timer is no longer a direct indication of physical core consumption, so you might want one of the other times.
- MT-1 Equivalent Time
- This is a measure of effective capacity, taking into account the multithreading benefit. The CPU
time charged approximates the time that would have been spent if the workload had been run with
multithreading disabled; that is, with all core resources available to one thread. The effect is to
discount
the time charged to compensate for the slowdown induced by the activity on other threads in the core. - Prorated Core Time
- This is a measure of core utilization regardless of the multithreading benefit. Time is charged by dividing the time the core was dispatched evenly among the threads dispatched in that interval. Under this method, the total time charged to all guests equals the total time the logical cores of the z/VM partition were dispatched. This method is consistent with cost recovery for core-based software licensing.