Hyperthreading Efficiency Calculator
Estimate effective performance gain from hyperthreading versus physical core count.
About Hyperthreading Efficiency Calculator
Hyper-Threading / SMT exposes two logical CPUs per physical core, but they share the core's execution units, caches and pipeline — so the OS-visible 'double the cores' from `nproc` overstates real throughput gain. The realistic effective core count models HT as a percentage boost over physical cores (not a full doubling), and that gain factor varies significantly by workload: heavily CPU-bound code with saturated execution units gains little from a sibling thread, while workloads with frequent stalls (cache misses, branch mispredicts, I/O waits) let the sibling thread productively fill otherwise-wasted cycles.
Formula
Effective core count
effective_cores = physical_cores × (1 + HT_gain%)
- P
- physical cores
- g
- HT gain fraction (typically 0.15-0.30)
Worked example
With the default values below, Hyperthreading Efficiency Calculator returns Effective Core Count of 10.00. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Physical Coresminimum 1
- 8
- Hyper-Threading Gain (%)accepts 0–50
- 25
- Workload Typeone of CPU-bound, high ALU/FPU contention (low HT gain), Mixed workload (typical HT gain), Memory/IO-bound with stalls (high HT gain)
- Mixed workload (typical HT gain)
Results
- Effective Core Count
- 10.00
- Logical Cores (2× physical)
- 16
- Effective as % of Logical Cores
- 62.5%
- Workload Note
- Mixed workloads with some stalls (branch mispredicts, cache misses) typically see moderate HT gains (20-30%), the most common real-world range.
Step by step
- 1Values used
- 2Effective core count
- 3Effective Core Count= 10.00
- 4Logical Cores (2× physical)= 16
- 5Effective as % of Logical Cores= 62.5
- 6Workload Note= Mixed workloads with some stalls (branch mispredicts, cache misses) typically see moderate HT gains (20-30%), the most common real-world range.
Assumptions and limits
- The result is derived only from the 3 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax or compounding frequency into account.
- Figures are rounded for display to 2 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
Why shouldn't I treat logical cores as equivalent to physical cores for capacity planning?
Because sibling logical CPUs on the same physical core share execution units, cache and memory bandwidth rather than doubling them — a benchmark showing 2 logical cores delivering 2× a single core's throughput is the exception, not the rule. Realistic HT gains of 15-30% mean 16 logical cores from 8 physical cores behave closer to 9.2-10.4 'effective' cores for most workloads.
Should I disable Hyper-Threading for better performance?
Rarely beneficial for throughput — HT almost always adds some net gain even for CPU-bound work, just a smaller one. It's occasionally disabled for security isolation (mitigating certain side-channel/speculative-execution vulnerabilities between sibling threads) or for latency-critical workloads where predictable single-thread performance matters more than aggregate throughput.
How do I identify which logical CPUs share a physical core?
`lscpu -e` lists each logical CPU with its CORE column, showing which logical CPUs are siblings on the same physical core — useful for CPU affinity decisions like avoiding pinning two unrelated latency-sensitive threads onto sibling logical CPUs of the same core.
