My comrades and I did a performance analysis of Intel’s Hyper Threading Technology (HTT), using thread-safe ACIS and the ACIS thread manager.
In short, HTT turns one physical core into two logical cores and parallelizes instructions using available execution units to improve performance.
To be complete, we also wanted to analyze the impact of over-subscribing, since that is effectively what this technology (HTT) utilizes. So we created a test that loads and facets multiple bodies concurrently, with good work distribution. Then we ran it multiple times with a varying number of threads and with HTT enabled and disabled.
This graph shows that we experienced a 15% performance improvement with HTT:
Here is some detail about the comparison of hyper-threading and over-subscribing:
- The technology is logical vs. physical cores
- It uses available execution units
- Slight scheduling overhead (Can be seen in the graph)*
- Intel claims 15-30% performance boost
*I find this quite interesting. Intel says it’s due to extra operations required to schedule serial operations on physical cores, not on logical cores.
- More threads than cores (e.g. using 8 threads on a 4 core machine)
- Adds scheduling overhead (the scheduling system has more to deal with, which is different from the overhead mentioned above)
- HTT reduces impact (the performance impact of oversubscribing is lessened with HTT enabled)
In conclusion, the 15% improvement and the lessened impact of oversubscribing are well worth it. We are now enabling it whenever possible.
Is anyone else enabling Intel’s HTT? If so, what level of performance boost are you seeing?