I have received a number of customer questions recently on Intel® Hyper-Threading Technology. Hyper-Threading Technology is available on the new Intel® Core™ i7 processor and the Xeon® 5500 series processors. Here are a few of my favorite questions and answers - ranging from the basics to more advanced topics. What is it? Intel® Hyper-Threading Technology is a performance feature on our new Intel® Core™ i7 processor and the Xeon® 5500 series processors. Put simply, it allows one core on the processor to appear like 2 cores to the operating system. This doubles the execution resources available to the O/S, which potentially increases the performance of your overall system. For the visually-oriented, you can view a graphical explanation of Intel® Hyper-Threading Technology by clicking on the demo here.
Talking about cores, threads, and Hyper-Threads can get a bit confusing. To make things simple for the rest of this blog, I'm going to call Hyper-Threads hardware threads, and O/S level threads software threads. Just as a refresher, a core is 1 CPU. Each Core™ i7 or Xeon® 5500 series processor shipping currently has 4 cores (we may offer other versions in the future).
How can I tell if my system is using Hyper-Threading Technology? You must have a processor, chipset, operating system, and BIOS that all support the technology. Luckily, that is not much of a problem. Many of the desktop and server platforms that ship with Nehalem-based processors include this support. Most of these platforms will allow you to enable or disable Hyper-Threading Technology as a BIOS option (it should be enabled by default). You can view your CPU information using the Task Manager in Windows*, and /proc/cpuinfo in Linux*. If you have a supported platform and Hyper-Threading is enabled, you should see twice the number of CPUs as you have physical cores in your platform. For example, if you have a dual-processor Xeon® 5500 series server, you should see 16 CPUs. (16 hardware threads running on 8 physical cores, 2 threads per core.)
Available CPUs on the same platform with Hyper-Threading Technology disabled (top) and enabled (bottom).
Can I run 2 applications simultaneously on 2 different threads on the same core? Yes. The 2 software threads running on a single core do not have to be threads of the same process. They could be (in the case of multi-threaded software), or they could be from 2 separate applications. Which 2 software threads would run on the 2 hardware threads of a Hyper-Threaded core would be up to the operating system. So, yes, you could have 2 different applications running on the same core at the same time. (Whether you would get equal performance in this scenario as you would with the 2 apps running on separate cores is a different issue – see question 6.)
• How is it implemented, under the covers? • Can I give one hardware thread priority or ensure that it doesn’t get “starved” for execution time? • What kind of performance benefit will I get from using Intel® Hyper-Threading Technology?
What other questions do you have on the performance features of the new Nehalem-based processors?