Hyperthreading in Core i7 iMac

Shawnstra

macrumors regular
Original poster
Oct 12, 2008
202
0
Singapore
I heard that with some applications, hyperthreading has a negative effect. Is this really noticeable?

Anyway, sometimes when i'm doing light work like browsing the web, I think it'll be better to save power to turn off hyperthreading. Is this possible on a Mac? If so, can anyone please tell me how to do so?

Thanks!
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
unless there is a program to turn on/off HT in OSX, you probably cant do it (EFi is a bitch).

just leave it on, the differences are negligible at best anyway.
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
Hyperthreading doesn't alter power consumption.
Hyper-threading does increase power consumption but I still believe it should be enabled in the majority of cases.

unless there is a program to turn on/off HT in OSX, you probably cant do it (EFi is a bitch).

just leave it on, the differences are negligible at best anyway.
The Developer Tools can turn it off. I haven't used them in ages but I think it's somewhere in the CHUD tools.
 

admanimal

macrumors 68040
Apr 22, 2005
3,531
2
The system manages power for you. For example it will crank up the GHz on one core if the other cores aren't being used (a.k.a. Turbo Boost). I would be surprised if turning off hyperthreading made any difference other than when all of the cores/threads are getting pegged.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
The Developer Tools can turn it off. I haven't used them in ages but I think it's somewhere in the CHUD tools.
ahh ok, wasnt quite sure.

The system manages power for you. For example it will crank up the GHz on one core if the other cores aren't being used (a.k.a. Turbo Boost).
:confused: what does TB have to do with HT or this topic? (well yea it relates, but not in that sense).
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
The system manages power for you. For example it will crank up the GHz on one core if the other cores aren't being used (a.k.a. Turbo Boost).
Turbo Boost is controlled on the hardware side on the processor without the intervention of the operating system. Nonetheless there are a few tricks you can play to force applications to use only certain cores. I've only encountered very few instances where I needed to force an application to a single or two cores so I'd get the full Turbo Boost bins instead of it bouncing around the slower four cores.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
Turbo Boost is controlled on the hardware side on the processor without the intervention of the operating system. Nonetheless there are a few tricks you can play to force applications to use only certain cores. I've only encountered very few instances where I needed to force an application to a single or two cores so I'd get the full Turbo Boost bins instead of it bouncing around the slower four cores.
interesting.. i thought having 4 cores to 'bounce' around would have been faster then a single Turbo Boosted core. ;)

i wonder what the actual performance decrease of HT is.
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
interesting.. i thought having 4 cores to 'bounce' around would have been faster then a single Turbo Boosted core. ;)

i wonder what the actual performance decrease of HT is.
Like I said it's in a select few instances. I had a single threaded application that would bounce around cores even with thread parking under Windows 7. Once I forced it onto a single core I got 3.2 GHz of dedicated speed vs. 2.66 - 3.2 GHz as it bounced around the cores.
 

SmugMac

macrumors regular
Sep 25, 2009
135
0
Hmm. Hyperthreading has always been 'smoke and mirrors' tech.

You won't save any power turning off HT. :)
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
Like I said it's in a select few instances. I had a single threaded application that would bounce around cores even with thread parking under Windows 7. Once I forced it onto a single core I got 3.2 GHz of dedicated speed vs. 2.66 - 3.2 GHz as it bounced around the cores.
is that because HT doesnt like the application, or the application hasnt been produced efficiently enough?

ive been searching the google for some definitive answers as to whether HT is faster or not compared to no HT. one program gave benchmarks of 415.9 (HT off) and 466.6 (HT on), but then in the next benchmark is gave 54.8 (HT off) and 37.7 (HT on).

so for that program that you used, it was faster to be forced to use a single core then using multiple cores, even though it was chopping and changing all the time - the slow down was THAT bad??
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
is that because HT doesnt like the application, or the application hasnt been produced efficiently enough?
The application doesn't need hyper-threading. I just wanted it to park itself on a single core and stay there for full Turbo Boost and stop bouncing around all 4 cores. :p


ive been searching the google for some definitive answers as to whether HT is faster or not compared to no HT. one program gave benchmarks of 415.9 (HT off) and 466.6 (HT on), but then in the next benchmark is gave 54.8 (HT off) and 37.7 (HT on).

so for that program that you used, it was faster to be forced to use a single core then using multiple cores, even though it was chopping and changing all the time - the slow down was THAT bad??
The benefits of hyper-threading depend on how the processor components are utilized by an application. I sadly didn't copy a long winded post on the subject with excessive, extreme detail but in short an application needs to schedule the usage of the core components so they don't occur concurrently and redundantly. Hence the usage of the virtual core. Even so there are some tasks that can't be handled that way.

There are still some instances where disabling it will yield faster results.
 

jav6454

macrumors P6
Nov 14, 2007
16,876
1,532
1 Geostationary Tower Plaza
is that because HT doesnt like the application, or the application hasnt been produced efficiently enough?

ive been searching the google for some definitive answers as to whether HT is faster or not compared to no HT. one program gave benchmarks of 415.9 (HT off) and 466.6 (HT on), but then in the next benchmark is gave 54.8 (HT off) and 37.7 (HT on).

so for that program that you used, it was faster to be forced to use a single core then using multiple cores, even though it was chopping and changing all the time - the slow down was THAT bad??
HT helps only if the application is multi-threaded. Otherwise HT only hinders performance.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
The application doesn't need hyper-threading. I just wanted it to park itself on a single core and stay there for full Turbo Boost and stop bouncing around all 4 cores. :p
fair enough, it would have freed up the other cores for you to utilise too i guess. :)

The benefits of hyper-threading depend on how the processor components are utilized by an application. I sadly didn't copy a long winded post on the subject with excessive, extreme detail but in short an application needs to schedule the usage of the core components so they don't occur concurrently and redundantly. Hence the usage of the virtual core. Even so there are some tasks that can't be handled that way.

There are still some instances where disabling it will yield faster results.
i wasnt doubting what you said at all, as i have no real education on the subject. its always good to learn how things work.

so, the application itself tells which core/thread to use? i thought the OS handled how the cores were used. or maybe that was how HT was handled. argh i donno.

HT helps only if the application is multi-threaded. Otherwise HT only hinders performance.
correct, eid specified it was changing cores so i assumed that it was multi-threaded.
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
i wasnt doubting what you said at all, as i have no real education on the subject. its always good to learn how things work.
My apologies. I only sought to be informative on the technical aspects of the subject to the best of my knowledge.

so, the application itself tells which core/thread to use? i thought the OS handled how the cores were used. or maybe that was how HT was handled. argh i donno.
Certain parts of a task can be broken down so that they can be processed simultaneously using other core components. You just can't have the application trying to access the same parts of the processor core simultaneously. Hence the virtual core vs. a true physical core.

Portions of the processor are duplicated but not in their entirety.
 

jav6454

macrumors P6
Nov 14, 2007
16,876
1,532
1 Geostationary Tower Plaza
My apologies. I only sought to be informative on the technical aspects of the subject to the best of my knowledge.

Certain parts of a task can be broken down so that they can be processed simultaneously using other core components. You just can't have those parts trying to access the same parts of the processor core simultaneously. Hence the virtual core vs. a true physical core. Parts of the processor are duplicated but not in their entirety.
What he said. I was posting a long post but then hit back accidentally, by the time I got to thread again I saw that. So, what Eidorian said.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
My apologies. I only sought to be informative on the technical aspects of the subject to the best of my knowledge.
no need to apologise mate, its all good :)

Certain parts of a task can be broken down so that they can be processed simultaneously using other core components. You just can't have the application trying to access the same parts of the processor core simultaneously. Hence the virtual core vs. a true physical core.
right, so the application will try to do the best it can. this will of course be restricted by the OS, and the OS will be restricted by the physical components.

Portions of the processor are duplicated but not in their entirety.
oh yea of course not. the reality is that a CPU can still only perform one operation at a time (per core). if HT could do that then it wouldnt really be HT, it would be double the cores. :cool:
 

300D

macrumors 65816
May 2, 2009
1,284
0
Tulsa
HT helps only if the application is multi-threaded. Otherwise HT only hinders performance.
No. HT only works if portions of the CPU core are not being used by another thread and a waiting thread can utilize that unused section. If that unused portion of the CPU cannot execute the thread, or the entire CPU is busy, then HT has zero effect.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
No. HT only works if portions of the CPU core are not being used by another thread and a waiting thread can utilize that unused section. If that unused portion of the CPU cannot execute the thread, or the entire CPU is busy, then HT has zero effect.
when you say thread, does an application thread = a CPU thread? so theoretically 8 application threads could be processing 'simultaneously' on a 4 core, HT enabled CPU?
 

jav6454

macrumors P6
Nov 14, 2007
16,876
1,532
1 Geostationary Tower Plaza
No. HT only works if portions of the CPU core are not being used by another thread and a waiting thread can utilize that unused section. If that unused portion of the CPU cannot execute the thread, or the entire CPU is busy, then HT has zero effect.
I fail to see how a HT enabled CPU will deliver more performance out of an application that is single threaded.

Doesn't matter how many threads the CPU can handle, it's down to the application now.
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
right, so the application will try to do the best it can. this will of course be restricted by the OS, and the OS will be restricted by the physical components.
There are still limits as to what operations can be handled in parallel and using different components of the core.

Hyper-threading works when you can push another thread down the pipe and have it complete execution. If the entire core is in use it's moot.

Video encoding is one thing that appears to gain the biggest benefits from Hyper-thread given the nature of the media.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
There are still limits as to what operations can be handled in parallel and using different components of the core.

Hyper-threading works when you can push another thread down the pipe and have it complete execution. If the entire core is in use it's moot.

Video encoding appears to glean the biggest benefits from Hyper-thread given the nature of the media.
i was just thinking about that. mathematical computations and whatnot wouldnt benefit that much from HT because each computation would probably require a previous computation to be completed rather then just doing them all 'willy-nilly'.

video and audio compression/encryption/decryption seem to be the ones that benefit the most. results prove it too - we are seeing more then 20% increases with HT enabled over other systems.
 

Eidorian

macrumors Penryn
Mar 23, 2005
29,085
290
Indianapolis
i was just thinking about that. mathematical computations and whatnot wouldnt benefit that much from HT because each computation would probably require a previous computation to be completed rather then just doing them all 'willy-nilly'.
Off hand I can't provide examples of tasks that need to be completely linearly or sequentially. You have a good example though. Games tend to have some trouble scaling on cores. In most cases physics and audio are passed off to a second core but not much else. Real time presentation doesn't help a game either.

video and audio compression/encryption/decryption seem to be the ones that benefit the most. results prove it too - we are seeing more then 20% increases with HT enabled over other systems.
You can break up the task into parts and those parts might only have certain operations performed on them. Reassemble the final product using an index you made at first and not every filter or transformation needs to occur simultaneously or immediately after the previous part is done.

Waiting is the hardest part.
 

DoFoT9

macrumors P6
Jun 11, 2007
17,512
33
Singapore
Off hand I can't provide examples of tasks that need to be completely linearly or sequentially. You have a good example though.
i guess there would not be many that need to be completely 100% sequential, but there would be a good amount that require quite a bit of prior-processing.

You can break up the task into parts and those parts might only have certain operations performed on them. Reassemble the final product using an index you made at first and not every filter or transformation needs to occur simultaneously or immediately after the previous part is done.

Waiting is the hardest part.
true. each frame of a video requires exactly the same processing (more or less). i wonder if there are even more ways to make video conversions easier/more efficient.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.