• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

To HT or not to HT, that is the question

Associate
Joined
11 May 2006
Posts
46
Location
GX Bucks
Hi,

I've used HT for a while on my 3.0 P4 - I like the way it helps you multi-task better by not letting one program nick all of the CPU power.

It's especially useful when one program crashes - it can only max-out one half of the CPU :cool: (if you've set the affinity correctly).

That's great, but is it counter-productive on an overclocked system? If you've raised the FSB to increase the CPU speed, by 400MHz (for example) your programs will only see a 200MHz boost (unless they are designed for HT / multiprocessor - which none of mine are!)

What are people's thoughts on this? Is it best to turn the HT off so your programs / the OS can enjoy the fruits of your overclocking? Do I have the wrong end of the stick?

- Toff.
 
Man of Honour
Joined
11 Mar 2003
Posts
10,706
Location
Greenock, Scotland
Toff said:
That's great, but is it counter-productive on an overclocked system? If you've raised the FSB to increase the CPU speed, by 400MHz (for example) your programs will only see a 200MHz boost (unless they are designed for HT / multiprocessor - which none of mine are!)

No, if you raise the FSB to run the CPU at 3.4GHz, it runs at 3.4Ghz. You get the 400MHz boost all the time.
 
Soldato
Joined
5 Jan 2003
Posts
5,001
Location
West Midlands
HT doesnt actually work like that, its a lot more 'clever'.

A single program is able to 'max' out the processor to 100% no problem (well in reality on a HT cpu its more like 98% a tiny bit slower than a non HT cpu.)

However, due to the nature of most software, there are always some 'spare unused' circuits in the CPU. HT enables these spare parts to be used, on average 25% of the cpu is unused, so you can think of a HT processor as 1.25 processors.

Unfortunatly the CPU Usage display on WindowsXP just treats the virtual CPU as a full second core, and it takes an average of both cores, so its common for windows to be claiming the cpu is only 50% loaded, while infact its close to 100% load.

In laymans terms, when 1 of the virtual cores is at 100% load (windows claiming 50%), there is between 0, and 50% more performance to be squeezed out of the virtual core, depending on the nature of the programs running on the cpu. On average 25% is the expected gain from the virtual core.

Imagine a very simple 'basic' program

10 goto 10

This would potentially loop a non HT core at 100% load, while infact using probably just 1 of the P4's 2xALU's, the virtual core would be able to use 1ALU, and the FPU as well, so the system would keep running. Very nice to have in windows, as you'll be able to use the virtual core to open task manager, and shut down the runaway program.

The more complex the main foreground tasks running on the PC, the less resources the cpu can assign to the virtual core, in theory programs could be written that use 100% of the cpu's resourses, leaving nothing left for HT to get its teeth into.

As I said before however, in the real world, an average of 25% more work can be done with 'real world' programs.

a 3Ghz HT processor will run a single task just as fast as a non HT P4 at the same clock rate (HT may cost 1-2% performance on single threaded tasks, but it really isnt enough to worry about). Overclocking the HT processor will yield the same percentage gains as with a non HT P4, again ending up just 1-2% slower than the non HT p4.

The multitasking gains from HT far outweigh the minor losses caused by the system, especially when running an OS like windows which loves to have background tasks running all the time, thus making good use of HT.
 
Associate
OP
Joined
11 May 2006
Posts
46
Location
GX Bucks
rpstewart said:
No, if you raise the FSB to run the CPU at 3.4GHz, it runs at 3.4Ghz. You get the 400MHz boost all the time.

But with HT, if you are encoding an MPEG to AVI for example (which I regularly do to get movies onto my Archos) it will max-out one side of the processor whilst the other side remains idle (see below for an example).

15.png


To me, that means the application isn't making use of the processor's capabilities or the extra MHz you're freed-up by over clocking. I wonder if the same would Apply to the OS itself (or would it use the processor more intelligently?)

- Toff.
 
Soldato
Joined
5 Jan 2003
Posts
5,001
Location
West Midlands
Thats just a 'windows' issue.

Windows is thinking you have 2 fully working processors. In reality you have a single processor which can do 125% cpu load.

Anytime either of the graphics for the cores hit 100% your basically at 100% cpu load. But with HT enabled the processor 'may' be able to find some unused parts, and allow a second thread to run on them.

Windows is making 'best' use of the HT processor, its just the taskmanger's CPU usage display is a work of 'fiction'
 
Soldato
Joined
21 Oct 2002
Posts
18,022
Location
London & Singapore
Average joes shouldn't really be digging this deep into their system. Nor should anybody be using the "Set Affinity" option for anything other than compatibility reasons.

I think Microsoft's reasoning for leaving Task Manager fairly useless in determining HT utilisation is that HT was always going to be a short lived solution to a bigger problem. Now that multi core CPUs have arrived, HT is gradually being phased out. Although nothing is stopping it coming back...
 
Soldato
Joined
18 Dec 2004
Posts
6,568
Location
London/Kent
Fulcrum said:
confusing ! :o
Actually I thought it was rather well explained :p.

Windows is designed for the 'consumer' so they will simplify it all, almost to the point of untruths/stretching reality. The CPU is working damn hard with only '50%' loaded. As a test you can perform yourself - read up on how to dual prime your system and run prime on one 'core' - leave this for 30 mins and then note the temp. Load up the second 'core' and watch the temp not rise very much at all - because there is little more the processor can do - this is not the case for a dual core which usually goes up substantially on each core loaded.
 
Soldato
Joined
5 Jan 2003
Posts
5,001
Location
West Midlands
To be honest, im not 'blaming' microsoft on this one, im not sure windows has much choice, afterall, HT compatible motherboards are just fooling windows into thinking there are two processors, windows uses its normal multi processor HAL to assign threads to each core as if they were real processors, and then the CPU works out how to best assign the threads to the phyiscal execution units.

Anyhow, to the original poster.... Overclock as much as you like, and leave HT enabled. As long as the CPU is stabled, the higher the clock, the faster everything will be.
 
Associate
OP
Joined
11 May 2006
Posts
46
Location
GX Bucks
Corasik said:
Thats just a 'windows' issue.

Windows is thinking you have 2 fully working processors. In reality you have a single processor which can do 125% cpu load.

Cheers for your explanation.. I posted the performance monitor pic at the same time you posted (hadn't seen your reply)... I now understand, many thanks :)

That settles it - I'll leave it HT :)

- Toff.
 
Associate
OP
Joined
11 May 2006
Posts
46
Location
GX Bucks
NathanE said:
Average joes shouldn't really be digging this deep into their system. Nor should anybody be using the "Set Affinity" option for anything other than compatibility reasons.

mr-t-promo_1097606461.jpg
Who 'choo callin' an "average Joe" fool? ;)

I set the affinity, because one of the programs I use, occasionally crashes (despite being at the latest revision etc).

If I un-tick the affinity for the second CPU (HT virtual CPU obviously) for that process; when it crashes, I'm still able to navigate to the Task Manager and end the process.
If the process is active on both affinities when it crashes, the computer runs to slowly to do anything (5 mins for Task Manager to open) and I have to re-boot.

Setting the affinity on the Multi-processor servers at work is a very valuable tool - you can dedicate an entire PC to Exchange's store process (for example) which we've seen performance gains from.

- Toff.
 
Associate
OP
Joined
11 May 2006
Posts
46
Location
GX Bucks
mr-t-promo_1097606461.jpg
Who 'choo callin' an "average Joe" fool?

I set the affinity, because one of the programs I use, occasionally crashes (despite being at the latest revision etc).

If I un-tick the affinity for the second CPU (HT virtual CPU obviously) for that process; when it crashes, I'm still able to navigate to the Task Manager and end the process.
If the process is active on both affinities when it crashes, the computer runs to slowly to do anything (5 mins for Task Manager to open) and I have to re-boot.

Setting the affinity on the Multi-processor servers at work is a very valuable tool - you can dedicate an entire PC to Exchange's store process (for example) which we've seen performance gains from.

- Toff.
 
Soldato
Joined
21 Oct 2002
Posts
18,022
Location
London & Singapore
Sorry I didn't mean it like that :) I just couldn't think of a better way to say "average joe" at the time :o

Corasik said:
im not sure windows has much choice
It does. The kernel knows which cores are virtual and which are not. This information can be easily retrieved by Task Manager it chooses not too. Not that it really matters though... :)
 
Back
Top Bottom