If you’ve thought about buying an Intel processor lately – or a computer with an Intel processor installed – you may have heard the term “Hyper-Threading” launched at your eardrums. You probably aren’t familiar with this term unless you stay up-to-date with the nitty-gritty of computer hardware.
Understanding Hyper-Threading is important, however, because it’s a major feature on some Intel processors. Like most major processor features, it can be twisted and turned by the sales reps you meet. I’ve had a Fry’ store employee tell me that Hyper-Threading effectively doubles the number of cores on a processor. Although true in a sense, it’s mostly an exaggeration.
Let’s take a look at what Hyper-Threading really means.
A Brief History Of Hyper-Threading
Depending on when you last bought a computer, you may remember Hyper-Threading as a feature that Intel introduced and then discontinued. This could understandably leave a sour taste in your mouth – why would Intel discontinue it if it wasn’t trouble?
The truth isn’t so grim. Hyper-Threading was for a time made available on certain Intel Pentium 4 and Intel Xeon processors. It was discontinued not because the feature itself was bad, but rather because the processor that used it turned out to be a bit of a misstep for other reasons. The Pentium 4 architecture was a minor disaster for Intel because it was incapable of going the direction Intel hoped (Intel wanted to have Pentium 4 processors with clock speeds of up to 10 GHz). As a result, Intel jumped back to designing processors based on the Pentium Pro family tree.
Hyper-Threading was gone, but not forgotten. Intel eventually found the time and resources to integrate it into another new processor architecture – Nehalem. This is the architecture that is the basis for all current Intel Core i3, i5 and i7 processors.
Nice Threads, Man
Despite all of the advancements we’ve made in the world of processors, they still have one major limitation – an individual processor core can only execute one instruction at a time. Let’s say, for example, that you have MS Office, Firefox and Skype all open at once. You feel like you’re multi-tasking, but in processor terms you’re not. The processor core executing data related to these programs executes one instruction at a time, but because it is so quick you don’t notice any delay.
But there is a delay. That delay is due to how the data from each program is fed to the processor. Each stream of data – or thread- in to the processor must be scheduled and executed by the core individually. Hyper-threading, however, makes it possible for each processor core to schedule and assign resources to two threads at once.
Imagine a worker on an assembly line. There two types of widgets coming to her, and she needs to do different things with each widget. However, sometimes there is a delay because the conveyor belt is too slow, or because the wrong widget was sent at the wrong time. Hyper-Threading is like adding another conveyor belt so there is now one dedicated to each type of widget. There is still only one worker, but now widgets can be brought to her more quickly and efficiently so she is waiting for work less often.
Not The Same As Doubling Cores
If you boot up a dual-core processor with Hyper-Threading and open Windows Task Manager you will find yourself staring at four graphs. This is where most of the confusion about Hyper-Threading doubling the number of cores come into play. I’ve even spoken with one poor fellow who thought he’d purchased a eight-core processor because he saw eight graphs in Windows Task Manager. That’s what the sales rep told him, so when he went home and saw eight graphs, he was hooked. Seeing was believing.
Two graphs appear in Windows for each core on a Hyper-Threading processor because Windows is detecting two logical processors for each core. The term “logical processor” sounds fancy, but a logical processor is by definition a processor that has no physical existence. Windows can send threads to each logical processor, but there is still just one core doing the actual execution, so a single core with Hyper-Threading is dramatically different from two seperate physical cores.
The Benefit Of Hyper-Threading
Alright, enough with the technical mumbo-jumbo. Now let’s get down to the most important part – how Hyper-Threading will impact the performance of the computer are thinking of building or buying.
In terms of day-to-day tasks like web browsing, email and word processing, Hyper-Threading won’t have much of an impact. Yes, Hyper-Threading is theoritically better at multi-tasking. However, today’s processors are so fast that basic programs are rarely limited by the speed of your processor. The way programs are coded can also be a limitation. You may sometimes find that you have numerous programs open, but only one of your processor cores is being put to much use. That’s because the programs are, for whatever reason, not having their work divided among the different cores available.
When you’re trying to do some heavy lifting, however, Hyper-Threading can be more helpful. The applications most likely to benefit are 3D rendering programs, heavy-duty audio/video transcoding apps, and scientific applications built for maximum multi-threaded performance. But you may also enjoy a performance boost when encoding audio files in iTunes, playing 3D games and zipping/unzipping folders. The boost in performance can be up to 30%, although there will also be situations where Hyper-Threading provides no boost at all.
As the performance boost figure of only up to 30% indicates, Hyper-Threading is not the same as doubling the number of cores on a processor. If a sales rep ever tells you that, be careful, because they’re either ignorant or happy to lie to you if they think it will help push hardware.
With that said, Hyper-Threading is a cool feature, and it’s worth having. It’s particularly good if you like to edit media often or you use your computer as a workstation for professional programs like Photoshop or Maya.