1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

To HT or not to HT, that is the question

Discussion in 'CPUs' started by Toff, 16 May 2006.

  1. Toff

    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.
     
  2. rpstewart

    Man of Honour

    Joined: 11 Mar 2003

    Posts: 10,742

    Location: Greenock, Scotland

    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.
     
  3. Corasik

    Soldato

    Joined: 5 Jan 2003

    Posts: 5,002

    Location: West Midlands

    HT doesnt actually work like that, its alot 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.
     
  4. Toff

    Associate

    Joined: 11 May 2006

    Posts: 46

    Location: GX Bucks

    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).

    [​IMG]

    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.
     
  5. Corasik

    Soldato

    Joined: 5 Jan 2003

    Posts: 5,002

    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'
     
  6. Fulcrum

    Hitman

    Joined: 19 Feb 2004

    Posts: 607

    Location: Black Mountains

    confusing ! :o
     
  7. NathanE

    Capodecina

    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...
     
  8. Fulcrum

    Hitman

    Joined: 19 Feb 2004

    Posts: 607

    Location: Black Mountains

    ok nm
     
  9. smids

    Soldato

    Joined: 18 Dec 2004

    Posts: 6,660

    Location: London/Kent

    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.
     
  10. Corasik

    Soldato

    Joined: 5 Jan 2003

    Posts: 5,002

    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.
     
  11. Toff

    Associate

    Joined: 11 May 2006

    Posts: 46

    Location: GX Bucks

    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.
     
  12. Toff

    Associate

    Joined: 11 May 2006

    Posts: 46

    Location: GX Bucks

    [​IMG] 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.
     
  13. Toff

    Associate

    Joined: 11 May 2006

    Posts: 46

    Location: GX Bucks

    [​IMG] 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.
     
  14. NathanE

    Capodecina

    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

    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... :)