Some bios's Do Not have the option to disable Hyperthreading of the CPU, it there a way to disable it in the Windows 7 Registry? Or a tool or software?
I know about msconfig boot tab (advanced options) and disabling processors there, not sure if it disables complete cores or hyperthreads, or how to tell.
32bit or 64bit Windows 7
EDIT:
Lets assume it is a dual core or more with hyperthreading.
In Device manager it shows 4 processors on my i5 Intel Processor, and you cannot disable them either, dang.
Best Answer
From the Intel Core Processor Datasheet, Volume 1, page 38:
This is because hyperthreading is actual physical hardware on the CPU die, and thus can be enabled/disabled on a hardware level only.
If you know which application does not work well with hyperthreading, you can use a tool like StartAffinity if you have XP.
If you use Windows 7, there is a built in
start
command that can do this. Use the following command to launch a process with a particular processor affinity (again, the/AFFINITY
argument was only added in Windows 7):Where
<mask>
should be replaced with the hexadecimal mask for the processors you want to run (the processor mask is just a binary mask enabling/disabling that affinity, so 00000101 enables CPU0 and CPU2, and 00000010 enables only CPU1).To calculate the hex value, you can either convert the binary mask, or take the sum of 2 to the power of the cores you want to run the program on (starting from 0), and convert that value to hexadecimal.
For example, if I have a four-core system, and only want the process to execute on CPU0 and CPU2, I would add 20 + 22 = 1 + 4 = 5. Convert 5 to hex, which is just 5, and set that as your
<mask>
. You could also just convert 00000101 to hex as well. If you don't know how to convert these bases, you can just use this conversion table.