Hyper-threading (officially called Hyper-Threading Technology or HT Technology and abbreviated as HTT or HT) is Intel's proprietary simultaneous multithreading (SMT) implementation used to improve parallelization of computations (doing multiple tasks at once) performed on x86 microprocessors.
A processor stalls when it must wait for data it has requested, in order to finish processing the present thread.
If the operating system's thread scheduler is unaware of hyper-threading, it will treat all four logical processors the same.
The first published paper describing what is now known as hyper-threading in a general purpose computer was written by Edward S. Davidson and Leonard.
US patent for the technology behind hyper-threading was granted to Kenneth Okin at Sun Microsystems in November 1994.
Intel released the Nehalem microarchitecture (Core i7) in November 2008, in which hyper-threading made a return.
The first generation Nehalem processors contained four physical cores and effectively scaled to eight threads.
[15][16] According to Intel, the first hyper-threading implementation used only 5% more die area than the comparable non-hyperthreaded processor, but the performance was 15–30% better.
[17][18] Intel claims up to a 30% performance improvement compared with an otherwise identical, non-simultaneous multithreading Pentium 4.
"[19] Intel also claims significant performance improvements with a hyper-threading-enabled Pentium 4 processor in some artificial-intelligence algorithms.
As one commentary on high-performance computing from November 2002 notes:[20] Hyper-Threading can improve the performance of some MPI applications, but not all.
When the first HT processors were released, many operating systems were not optimized for hyper-threading technology (e.g. Windows 2000 and Linux older than 2.4).
[29] In 2010, ARM said it might include simultaneous multithreading in its future chips;[30] however, this was rejected in favor of their 2012 64-bit design.
[33] In 2017, it was revealed that Intel's Skylake and Kaby Lake processors had a bug in their implementation of hyper-threading that could cause data loss.
Potential solutions to this include the processor changing its cache eviction strategy or the operating system preventing the simultaneous execution, on the same physical core, of threads with different privileges.
[38] In 2018 the OpenBSD operating system has disabled hyper-threading "in order to avoid data potentially leaking from applications to other software" caused by the Foreshadow/L1TF vulnerabilities.