Pinhedd :
However, the instruction scheduler on the CPU may be keeping the backend execution units optimally busy which would yield the same total instruction throughput regardless of whether Hyperthreading is enabled or not.
Even in heavily optimized code, it is nearly impossible to fill all of Sandy/Ivy/Haswell's execution units on an on-going basis with a single thread. That's why HT yieds a 30-40% performance gain in most heavily threaded scenarios - the extra thread enables each core to work smarter instead of harder by giving them two different instruction, data and dependencies streams to optimize execution resource utilization with.