Short Story about Intel Hyper-Threading®
Here is a story for you:
Back in the day, when I worked at AMD, I managed a small team doing performance work and benchmarking. Back then, client computers were almost universally single core and single threaded. Only workstations had more than one processor and then generally only two – and they were stupid expensive.
When Intel announced Hyper Threading AMD wasn’t too worried – they still generally beat Intel parts in price/performance – especially when using metrics such as clocks per instruction.
But then the benchmark numbers started coming in. Bummer for AMD! Some benchmarks showed HT doing really well! Much better than the engineering numbers suggested.
To make a long story short – there were a few programs used in benchmarks that were multi-threaded enough, so that HT made a big difference in the benchmarks.
But the benefits were not due to throughput – AMD’s analysis was spot on there. The new HT processors where not achieving more throughput than AMD’s parts. In several cases, the performance numbers were significantly lower with HT enabled, than without!
To AMD’s chagrin, the benchmark boosts were because the UI stayed alive on HT systems – it didn’t hang or become jerky and unresponsive. This boosted the benchmark numbers because the existing measures where developed assuming a single CPU and scenarios where the UI generally blocked on long running items. HT gave the UI thread’s just enough CPU time to remain responsive enough… this made the benchmark logic see that things were getting done much more quickly.
So, from throughput perspective, HT wasn’t all that great – there were even scenarios where it was significantly slower.
But HT had real benefits to the end user for programs that could get longer running operations off the UI thread. These programs tended to be more responsive on HT systems, than on true single threaded systems.
The point is that even though the first implementation of HT wasn’t particularly efficient the benefits to the user were valuable simply because the UI could stay ‘live’ on HT systems and not on others.