Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Hyper Threading enabled at OS install?

This is my first post here, and after reading the "Welcome" post and saw "Our pledge: No question on desktop and server threading issues will go unanswered, however big or small." I thought I'd ask this question that has been bugging me lately.

Does Hyper Threading truly have to be enabled in the PC's Bios during the time of the Operating System's install to gain the full advantage? I have installed quite a few OSs across multiple PCs that allow for HTT, but I've never once actually turned it on in the Bios until after the OS install has completed.

Everything seems to function correctly via this method, HTT can be enabled, the Task and Device Manager show the second, virtual processor.

I was just wondering as another tech had told me that if HTT wasn't enabled in the Bios at OS install time, that you wouldn't receive the full benefit when enabling HTT.

Looking over this article:

I notice that it does mention the order for "effectively enabling HTT" as enabling HTT before OS install, but also that one should be installing the "Latest Intel INF Installation Utility" before any other drivers are loaded.

With that said, should I go back and install this INF now that I have already installed the OSs on these various HTT enabled machines? Is it possibly dangerous to do so(to the OS) and will I actually see any real performance increase by doing so?

Thanks guys and gals, this is just something that's been bugging me for a while now.
0 Kudos
6 Replies
Black Belt
In the early days, with a single CPU single core HT, if you installed certain 32-bit OS with HT disabled, you didn't automatically get threading support. For example, I was just looking over a Red Hat 8 installation on a 32-bit P4. If you installed that with HT enabled, it would install both the multi-processor and the uni-processor kernel, and make the mp the default automatically. If you installed with HT disabled, only the uni-processor kernel would install automatically. You could install the mp by rpm and set the default to it, and end up with the same result as if you did the install with HT enabled. 64-bit OS typically don't have a uni-processor kernel, so you get the mp installation even if only one core/thread is available. Installing a typical OS on dual core, it makes no difference whether HT is enabled while installing.
The reason for having a up kernel was to gain increased performance in the case where only one hardware thread is supported.
Windows 2000 could never give good HT performance, because it used greedy spin locking. In my view, that was its greatest fault.
Most of this is moot, as there is no current competitive HT or single core CPU. I do continue to run a Pentium D with HT enabled, and find that it often competes, when running 4 threads, with a Core 2 Duo running 2 threads, if you don't mind the extra noise and power consumption.
If you do run into ancient drivers which break under HT, if you are lucky enough to still be able to get updated drivers for such an old machine, it's usually possible to install the updates simply by following instructions.
That's very interesting, I appreciate this info.

The computer I am sort of testing this all out on is a Pentium 4, 3ghz chip(single core, single processor). It's "Intel Chipset 82865G/PE/P/GV/82848P", according to the Device Manager.

I decided to go ahead and attempt the Intel Chipset Software Installation Utility. It ran, said it found some stuff, did it's thing and then had me reboot. I checked the drivers after reboot and nothing had changed, everything was still using the old Microsoft drivers.

Is there any way to, or any tool that will accurately verify whether or not HTT is working properly and at 100% even though I did not have HTT enabled in the Bios during the OS's install, nor did I install the Intel Chipset drivers at any point after the OS's install?
Actually, I found this:

Hyper-Threading Technology Test Utility

Unfortunately this was the result:

"ADVISORY! The Hyper-Threading Technology Test Utility was unable to identify if all the core components are present, turned on or functional in this system. Without all required components, Hyper-Threading Technology is not fully enabled.
Chipset test: Did not pass
Processor test: Did not pass
BIOS test: Passed"

Not sure what to make of that, but the Intel Chipset Indetification Utility also fails to identify anything on my board. Not sure what the deal is with that. It's a Dell Optiplex GX270, shouldn't be anything too far removed from what Intel's utilities are used to.
Black Belt
If your taskmanager performance window shows 2 threads, that's good enough. At this point, I'll mention that some people are of the opinion that the best HT can do is far short of "full" functioning.
If your Windows has both uni- and multi-processor kernels, you should be able to switch back and forth by changing cpu selection in device manager, or by the options in boot.ini (if no boot.ini, I guess it has no mp support). The up-to-dateness of your chipset drivers shouldn't affect the up vs mp choice Windows made at installation.
I'll leave it to you to do a web search on your part numbers.
I appreciate the information.

The Boot.ini is the one thing I meant to finally get to last night when I was messing around with the machine, but didn't. I'll take a look in to that and see if it's listing any HTT options.

Using a driver scan app I was able to update virtually every Intel-based device on the system save for the "Intel 82801 PCI Bridge - 244E". I have noticed that on most Intel chipsets that have this device, that the various driver scan apps report that it is out of date. The listing is always the same too, " - 1/10/05". I've searched all over the Intel site for this supposed update, but have never come across it. I don't really worry about it, I just kind of question where all these apps are getting their information for what driver number that should be at.

Any way, I'll take a look in to that Boot.ini file tonight, see how that goes. I can't imagine that full HTT support will squeeze that much more juice out of the single core, single processor, but it'll be interesting to see how it goes.

Hey DigitalMan,

I'm not sure if you'll read this reply or not since this topic seems a bit old but to update the drivers for your Intel 82801 PCI Bridge do the following.

Download the lastest chipset utility for your PC and save it somewhere you can easily find. (root of C: drive)

Click Start -> Run -> "path to chipset utility w/o the quotes" -a

This should extract all of the drivers from the chipset utility to C:Program FilesIntel

Now open device manager and find the Intel 82801 PCI Bridge under system devices. Right click it, choose update driver, and point it at the diectory containing all the extractedchipset drivers. (default should be C:Program FilesIntelInfInstInfAll)

I'm not sure why the chipset utility doesn't automatically update this device's drivers...

Hope that helps,