Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

The effect of hyperthreads on IPC

New Contributor I

I’ve been experimenting with a 4-socket Skylake based server with 24 cores per socket. I’ve run a number of workloads, each utilizing all of the cores, with both hyperthreads turned on and off. The workloads ranged from running queries on a on a highly parallel database to artificially constructed arithmetic operations. What I noticed in all cases was that when hyperthreads were turned on, workload throughputs improved by anywhere from 5 to 15%. This is was to be expected and is well-known. What surprised me, was that in all cases, the improvement in throughput was accompanied by a decrease in IPC (instruction per cycle). In others words with hyperthreads turned, although throughput improved, the system-wide IPC decreased by about 20% when compared to hyperthreads turned off.

Given that a hyper thread kicks in when a pipeline is stalled, I would have expected hyperthreading would increase the IPC, not decrease it. What am I missing?


0 Kudos
0 Replies