10
$\begingroup$

I have read it at various places like this, that Hyper-threading leads to performance degradation.

I am unable to get why or how hyper-threading leads to degradation.

Why it is so that even when Hyper-threading allows the OS to utilize free resources does the degradation happens.

Though benchmarks does indicate hyper-threading as the culprit but can someone explain me the reason for this.

Thanks

$\endgroup$

1 Answer 1

8
$\begingroup$

It would seem that the answer, as per usual, has something to do with caches. Since hyper-threads utilize the same L1 and L2 caches, one hyper-thread can trash another's caches. In the worst case the threads take turns trashing the other's cache and performance degrades as the caches are re-filled only to be trashed again.

Of course, this is likely very workload specific, which would explain why the problem is mostly seen on servers.

It is also worth noting that the answer depends in part on what you mean by "performance." For example, in real-time systems your performance metric is predictability instead of throughput, which hyper-threading negatively impacts by introducing unpredictable stalls.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.