Here is a question received by Intel Developer Services Support, followed by the response provided by our Application Engineers:
Q. I wonder if there are any adaptations of Hyper-Threading technology in assembler? Can I write any programmes (including the simplest ones) which use this technology? Howdo Ido this? Could you give me some examples of source code which I can use in assembler with explanation and comments?
In a nutshell, Hyper-Threading Technology allows a single processor to appear as 2 processors to the OS. This is done by duplicating a few resources on the actual CPU so that there can be 2 architectural states. Since there are not 2 actual physical processors available to the OS as there would be in a dual-processor system, we say there are 2 logical processors.
In order to take advantage of this technology, an application would need to be threaded. Existing applications that are threaded for multi-processor systems should automatically take advantage of Hyper-Threading technology. This paper,