- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Thanks
Link Copied

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page