The article summarizes the Hyperthreading technology as best as possible in just ten steps.
1. Hyperthreading (HT) is term coined by Intel for Simultaneous Multi-Threading (SMT).
2. Hyperthreading is meant for dual-core or multi-core processors like Pentium 4 with HT or Xeon MP.
3. The technology aims at better utilization of execution units in a processor which otherwise would be idle.
4. This technique is better than its predecessor Multithreading and Superthreading in the sense that in each instruction cycle, a processor can execute instructions from mutliple threads.
5. Hardware implementation of Hyperthreading is not very complex as reported by Intel “Implementing HT took only 5% more die space in Xeon”.
6. Implementing HT needs hardware resources to be divided into Replicated(e.g. Instruction Pointers), Partitioned (e.g.Queues) and Shared (e.g. Caches)
7. For actual performance gain, your applications have to hyperthreaded i.e. you have to parallelize your code.
8. Hyperthreaded applications use Shared Memory Programming Model. Most famous Shared Memory Programming standard is OpenMP (Open specifications for Multi-Processing), an effort initiated by Silicon Graphics Inc. and now supported by major industry players. OpenMP library is available for C,C++ and Fortran on both Windows and Unix platforms. OpenMP programming constructs consists of few compiler directives for parallelizing the code.
9. There are compilers and other automating tools that support shared memory parallel programming libraries like OpenMP. Some examples are Intel C++ Compiler, Intel VTune Performance Analyzer and High-Level tools from KAI Inc.
10. Hyperthreading does not necessarily increase performance. With wrong mix of code, it can even decrease performance.