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

hyperthreading ? is it reallu useful ??????

Associate
Joined
5 Jan 2011
Posts
8
Hi , Im wondering how useful hyperthreading really is , depending on what you want to do, for example :-

i have a quad core and multi task with lots of different apps , fine , i can see the use there , but .......

using a quad core already allocates threads to cores....

next example , and heres the kicker .....

i am using a multithreaded rendering app with my quad i7 , surely the rendering app will try to use the 4 *ghost* cores to perform the same calculations as the real 4 cores , the only trouble is that the *ghost* cores will need the actual electronics of the cpu that the real cores are using at the same time , in example 2 would there be a benefit to turning off hyperthreading ?????

also would turning it off lower temps ?????

opinions ??????
 
Soldato
Joined
9 Apr 2007
Posts
13,451
Its always puzzled me, surely if you have a program using the 8 threads that means each thread gets 50% of a core, why not just allow 4 threads of 100%?
 
Don
Joined
7 Aug 2003
Posts
44,275
Location
Aberdeenshire
Because it doesn't use 50% of the cores processing capacity, the HT core uses the spare capacity of the real core. The net effect being that for programs that can make use of all 8 threads you get ~150% of the performance of just 4 cores.
 
Soldato
Joined
9 Apr 2007
Posts
13,451
Still dont get it, if you have a program that uses your quad core at 4 * 100% how is splitting your 4 core into 8 * 50% cores any better.
 
Soldato
Joined
13 Jun 2009
Posts
6,847
Yeah, in theory. In practice the best you can get is about a 30-40% improvement.

EDIT: Because HyperThreading doesn't mean each thread only gets 50% of your CPU. HT essentially means you're using the core more efficiently because the second thread can use parts of the core not being used by the first thread (even if the first thread was running at full speed or "100%").

To be honest it's a surprise that AMD still has no equivalent...maybe their cores are just far more efficient.
 
Last edited:
Don
Joined
7 Aug 2003
Posts
44,275
Location
Aberdeenshire
Still dont get it, if you have a program that uses your quad core at 4 * 100% how is splitting your 4 core into 8 * 50% cores any better.
Because when a CPU is processing a thread it's not 100% utilised, there's bits of it that sit doing nothing waiting for other bits to catch up so on. So hyperthreading has the idle bits do other things inbetween.
 
Soldato
Joined
9 Apr 2007
Posts
13,451
Right kind of makes sense. So has something to be processed in waiting for any free cycles. Seems its more to do with how rubbish windows still is at fully utilising a multi core setup.
 
Soldato
Joined
13 Jun 2009
Posts
6,847
It has nothing to do with Windows, it's to do with CPU design. In fact newer versions of Windows are optimised for HT, presumably knowing what kind of threads will take advantage of it the most. It also has nothing to do with multi-core CPUs - single-core CPUs with HT also perform multithreaded tasks faster.

Here's a great (but long and detailed) explanation. For a more simple demonstration, see the following images. In the first, a dual core CPU is running 1 thread per core but the parts of the CPU being used to carry out these processes could be done on a single core, as seen in the second image:

single_thread-smp-thumb.png

hyperthread-single_cpu-thum.png


This is an ideal situation though; in reality the two processes will need to share certain parts of the CPU processing chain, which is why you don't get a 100% increase.

Even if you don't understand it, the proof is in the benchmarks.
 
Last edited:
Don
Joined
7 Aug 2003
Posts
44,275
Location
Aberdeenshire
It's not really to do with Windows being rubbish with multi-threading. It's to do with the way processors are designed. Even when a CPU is running at 100% load large parts of it are sitting doing nothing due to the way that different instructions have to use different logic to complete the instruction, so by adding a bit of extra controlling logic you can have the processor run different instructions in parallel on a single core.
 
Soldato
Joined
1 Jun 2010
Posts
7,053
Location
London
It's not really to do with Windows being rubbish with multi-threading. It's to do with the way processors are designed. Even when a CPU is running at 100% load large parts of it are sitting doing nothing due to the way that different instructions have to use different logic to complete the instruction, so by adding a bit of extra controlling logic you can have the processor run different instructions in parallel on a single core.

hmm interesting. So sometimes my Q6600 usage is like 90%+ when playing GTA4 episodes or some othergames but that doesn't mean that the cpu is definitely beng utilised at 90% of it's processing power?
 
Associate
Joined
24 Apr 2009
Posts
1,942
Location
Aberdeen, Scotland
Nope.

If your 6600 had ht you'd get roughly 1/3 more speed because ht essential inserts additional commands into the processing queue when there's space. Basically, although you have 4 cores, when commands go in there's a small time gap between that and the execution, ht fills this gap.

When bittech did their 2600k review though, they onyl found ht to provide ~30% performance increase, down from the 35-40% from several years ago. Probably because intels chips have improved :)
 
Associate
Joined
16 Jan 2011
Posts
51
Hyperthreading is pretty turd. When people talk about these performance boosts they're essentially fibbing.

With the exception of a handful of predictable batch processing tasks no activity application(s) is bottle necked by running out of physical execution cores. Programs which people demand high performance from for a 'user time' experience by necessity can't be split into a large number of threads. (One or two at best) Any other threads will be low usage and could be all run at full speed on 1 core. There is and for the foreseeable future no need to think about using 'fake' cores. Especially when higher transistor count is going into even more real cores.

I've seen roadmaps that have 12+ cores soon, Desktop user time applications and OS's are no way close to being able to load that many cores never mind to want to utilise a load of fake unpredictably slow ones that can easily slow a system down through cache trash.

The fail of the I7 sandybridge is it's a 4 cores 4 fake. In a world where applications can't even use 4 real. The 'K' series does not have Virtualisation support so it will run virtual boxes slowly and virtual boxes are the only user time use that can scale well with cores.
 
Soldato
Joined
9 Apr 2007
Posts
13,451
The reason i went for a 2600k over the 2500k was for hyperthreading as it allows me to run BIGADV in folding and increases performance in folding, so it definitly works. Nice to finally know how.
 
Associate
Joined
16 Jan 2011
Posts
51
Still dont get it, if you have a program that uses your quad core at 4 * 100% how is splitting your 4 core into 8 * 50% cores any better.

Your right, its not better.

If you have 4 threads that each have a core and each thread puts that core into 100%. It can't run any faster even if that processor had 1000 real cores never mind 4 more fake ones.

The way to realise the 30% gains some people are touting here is if the application really was an 8 thread application that was putting your 4 cores into 100%. Then those 4 extra thread could execute faster somewhere else (provided the original 4 threads could still put the 4 real cores into full usage)

In that scenario Hyperthreading would be faster. But given that those cores will only run at 30% (at best) you'd probably be better of with a 5 core chip with more cache and executing those threads all on the 5th core using std time sharing.

Then there's the canard if turning Hyperthreading off enables you to overclock to a 30% speed boost then the gains in that Hyper-threading scenario are mooted and you'll now have a 30% speed boost that is available in any scenario.

In short, steer clear of Hyper-threading if you overclock use real-time/user time applications(aka everything you want to feel fast). Get hyper-threading if you like encoding video and unzipping files as fast as possible.
 
Associate
Joined
16 Jan 2011
Posts
51
The reason i went for a 2600k over the 2500k was for hyperthreading as it allows me to run BIGADV in folding and increases performance in folding, so it definitly works. Nice to finally know how.

Yeap, that's batch processing. I can't say I do much of that, but when I do I would prefer extra real cores with higher clock speed that is much more applicable to my normal usage.
 
Back
Top Bottom