PDA

View Full Version : Any way yet to turn off Hyperthreading on 2009 Mac Pro?




WonderSausage
Jun 26, 2009, 07:03 AM
Any updated CHUD that works on the 2009 Mac Pro to disable Hyperthreading? My encoder only supports 8 CPUs and I think I could get 10-20% better performance without HT.

It's very difficult to query the ADC site for CHUD, they've really buried it. Perhaps we have to wait for the 10.6 SDK?

thanks,

WS



Tesselator
Jun 26, 2009, 07:36 AM
Hey WS..

I think you're right. And the only way I know of is with the Processor prefs pane that come as a part of the XTools distribution free from Apple.

http://developer.apple.com/technology/xcode.html You might have to fill out a web-form or something I forget. :)

2002cbr600f4i
Jun 26, 2009, 11:47 AM
Install XCode off your OS install DVDs. Then I forget where in there you have to go, but in the directories where XCode gets installed, there's a prefs panel executeable that adds a Processor prefs panel. In there you can toggle the HT settings.

Note: you have to reboot for the changes to take effect.

VirtualRain
Jun 26, 2009, 11:50 AM
Any updated CHUD that works on the 2009 Mac Pro to disable Hyperthreading? My encoder only supports 8 CPUs and I think I could get 10-20% better performance without HT.

It's very difficult to query the ADC site for CHUD, they've really buried it. Perhaps we have to wait for the 10.6 SDK?

thanks,

WS

Let us know if turning off HT helps. Hopefully it doesn't make any difference. I recall reading somewhere that the task schedular can have sufficient insights into the physical core structure to be able to make smarter decisions about where to assign tasks... eg. to physical cores and not logical ones. Not sure though if this was Windows or OSX. :confused:

WonderSausage
Jun 26, 2009, 04:49 PM
Install XCode off your OS install DVDs. Then I forget where in there you have to go, but in the directories where XCode gets installed, there's a prefs panel executeable that adds a Processor prefs panel. In there you can toggle the HT settings.

Note: you have to reboot for the changes to take effect.

No, that's the same Processor prefs that's part of CHUD. It does NOT, repeat does not, affect Hyperthreading on the 2009 Mac Pro. It can only disable physical cores.

Tesselator
Jun 26, 2009, 07:47 PM
No, that's the same Processor prefs that's part of CHUD. It does NOT, repeat does not, affect Hyperthreading on the 2009 Mac Pro. It can only disable physical cores.

Get the newer one I linked you to. Another user here says that there's a "HT Off" menu selection in it when run on HT capable intels.
Screen shots of it show it listing 16 cores available for disablement as I recall.

WonderSausage
Jun 27, 2009, 09:29 PM
Get the newer one I linked you to. Another user here says that there's a "HT Off" menu selection in it when run on HT capable intels.
Screen shots of it show it listing 16 cores available for disablement as I recall.

Nope... the Processor.prefPane included with Xcode 3.1.3 has not been updated. It's still version 4.7.0 which came out in 2008 (though the created date has been changed to April 2009). Yes, it includes a "Hyper-Threading" checkbox but it does NOT have any effect whatsoever on the 2009 Mac Pro. Activity Monitor still shows 16 CPUs.

WS

Tesselator
Jun 27, 2009, 09:35 PM
Nope... the Processor.prefPane included with Xcode 3.1.3 has not been updated. It's still version 4.7.0 which came out in 2008 (though the created date has been changed to April 2009). Yes, it includes a "Hyper-Threading" checkbox but it does NOT have any effect whatsoever on the 2009 Mac Pro. Activity Monitor still shows 16 CPUs.

WS

OK, so the noob here that was saying it had that feature was taking the pizz. Sorry about that man.

Abidubi
Jun 27, 2009, 11:53 PM
Nope... the Processor.prefPane included with Xcode 3.1.3 has not been updated. It's still version 4.7.0 which came out in 2008 (though the created date has been changed to April 2009). Yes, it includes a "Hyper-Threading" checkbox but it does NOT have any effect whatsoever on the 2009 Mac Pro. Activity Monitor still shows 16 CPUs.

WS

Activity monitor will still show you 2X the number of bars, but only half of them are active. Yes you can disable HT on the 2009s. And yes it makes a difference. It makes some things actually run faster. Disabling it brings up the fps 5-10% in some games (effect is instantaneous and measurable), and running HD flash movies in safari is also significantly smoother when running 3 or more at a time on my quad core. Of course, 99% of the time I keep HT on since it doesn't make a noticeable difference in normal use.

Most non-multiCPU friendly programs will probably run better with HT off until 10.6 with grand central is released.

Maybe you should actually get your hands on the machine and test instead of assuming.

Tesselator
Jun 28, 2009, 03:08 AM
LOL! All that and you don't say how. TeeHeeHee...

Abidubi
Jun 28, 2009, 07:37 AM
LOL! All that and you don't say how. TeeHeeHee...

You click the button in the processor prefs.

http://img401.imageshack.us/img401/9983/picture18f.png

Unclicking it clearly stops hyperthreading.

http://img208.imageshack.us/img208/3129/picture19b.png

WonderSausage
Jun 28, 2009, 09:13 AM
Maybe you should actually get your hands on the machine and test instead of assuming.

http://forums.macrumors.com/showthread.php?t=664724

Maybe you should read someone's post history before being so rude. Or better yet, just don't be so rude, in general.

There is no credible evidence that HT is disabled, the processor palette that comes with the prefs shows it disabled but that prefs applet appears to be delusional because there is no performance difference in HandBrake, it does NOT persist across reboots or in Windows (where I really need HT disabled because of some Windows app compatibility), and no other utility confirms HT disabled.

Here are shots clearly showing both Activity Monitor and iStat Pro indicating 16 cores with the checkbox disabled. iStat Pro is pretty respected.


Activity monitor will still show you 2X the number of bars, but only half of them are active.

This statement conflicts with your second screenshot which shows 8 cores in Activity Monitor. And you don't have both the processor prefs and Activity Monitor in the same screenshot. Shenanigans.

http://www.hossenfeffer.com/images/HTshot1.jpg
http://www.hossenfeffer.com/images/HTshot2.jpg

WS

Tesselator
Jun 28, 2009, 09:28 AM
Easy enough to find out for sure Mr. Sausage.


Start Handbreak doing it's thing.
Look at any 16-bar CPU meter to make sure all 16 are going.
Then flip the HT switch and watch the CPU meters.


Happiness is knowing in three steps or less. :)

But his does show that it works here:
http://img208.imageshack.us/img208/3129/picture19b.png


EDIT: Thanks Abidubi! And if you're the guy who showed this before I apologize for falsely presuming sneaky noobishness. :)

Abidubi
Jun 28, 2009, 07:05 PM
Maybe you should read someone's post history before being so rude. Or better yet, just don't be so rude, in general.

I have about as much time to read through every post you ever wrote as you do to properly test something before making assumptions and announcing them to the world as fact.

There is no credible evidence that HT is disabled, the processor palette that comes with the prefs shows it disabled but that prefs applet appears to be delusional because there is no performance difference in HandBrake

I can't speak for handbrake performance, but it clearly does disable hyper-threading.

Look at my screenshot again. Notice only 4 of the 8 bars are doing anything. Thats with HT off.

Here are shots clearly showing both Activity Monitor and iStat Pro indicating 16 cores with the checkbox disabled. iStat Pro is pretty respected.

This statement conflicts with your second screenshot which shows 8 cores in Activity Monitor. And you don't have both the processor prefs and Activity Monitor in the same screenshot. Shenanigans.

When you set your computer to single CPU what is handbrake's performance like? Open activity monitor... does it show just 1 single bar? Oh wait, it shows exactly the same number as before, therefore it MUST not be working:rolleyes:. Hmmm, why is everything slower then?

Ever thought that maybe the # of processors is determined at startup, and therefore the information activity monitor uses to report the number of CPUs is what was known at boot time?

Concorde Rules
Jun 29, 2009, 05:30 AM
It does turn it off.

On my quad Mac Pro here temperatures DROP by 3-5C when HT is off.

So go and install the processor pane as it does work.

And trust me, I have been fiddling with that pane since launch. I can confirm from the change in chip temperatures that it does infact, work.

LPZ
Jan 19, 2010, 04:02 AM
Regarding a 2009 Mac Pro running Snow Leopard (10.6.2):

1) Can hyper-threading be toggled on-off from the command line?

2) Can current hyper-threading on-off status be determined from the command line?

3) How can I set my machine so that hyper-threading-off is the default after a reboot? Currently hyper-threading is always turned on when I reboot, even if I have the appropriate box unchecked in the Processor preference pane.

Thanks.


Model Name: Mac Pro
Model Identifier: MacPro4,1
Processor Name: Quad-Core Intel Xeon
Processor Speed: 2.26 GHz
Number Of Processors: 2
Total Number Of Cores: 8
L2 Cache (per core): 256 KB
L3 Cache (per processor): 8 MB
Memory: 6 GB
Processor Interconnect Speed: 5.86 GT/s
Boot ROM Version: MP41.0081.B03

SatyMahajan
Jan 19, 2010, 06:55 AM
Assuming you have CHUD installed.

You can disable HT from Terminal using this command:

hwprefs cpu_ht=false

And enable it using this command:

hwprefs cpu_ht=true

You could create an AppleScript that does this and launch it every time you boot, but every time you wake from sleep you'll see that OS X will again re-enable Hyperthreading.

LPZ
Jan 19, 2010, 08:41 AM
Assuming you have CHUD installed.

You can disable HT from Terminal using this command:

hwprefs cpu_ht=false

And enable it using this command:

hwprefs cpu_ht=true

You could create an AppleScript that does this and launch it every time you boot, but every time you wake from sleep you'll see that OS X will again re-enable Hyperthreading.

Thanks. But now I'm even more puzzled!

First, I have XCode 3.2.1 and CHUD.

I am now fairly certain that neither the Processor pref pane nor the command line method actually disable hyper-threading on 10.6 (using either 32 or 64-bit kernels). A check can be placed or removed, or cpu_ht can be set 1 or 0, but it seems to me hyper-threading is always enabled. Here's why I think so.

I have both a 10.5.8 and a 10.6.2 system on my Mac Pro 4,1. On each system I have identically compiled versions of the chess program Crafty.

When set to use 8 threads, Crafty is quite sensitive to hyper-threading status. It is measurably slower when hyper-threading is enabled.

When I run Crafty on the 10.5.8 system, toggling the hyper-threading status in the Processor pane has an immediate effect on Crafty's speed with 8 threads.

When I do the same thing on the 10.6.2 system, toggling the hyper-threading status in the Processor pane (or from the command line) has no effect on Crafty whatsoever. Speed is slow in both cases.

I wonder how we can get a definitive answer from Apple.

LPZ
Jan 19, 2010, 04:48 PM
Upon further testing I am convinced that hyper-threading cannot currently be disabled using the Processor pref pane on my 10.6.2 Mac Pro 4,1.

Is there any way to do this?

wbsimey
Jan 21, 2010, 06:16 PM
we are running an Xserve cluster (OS X 10.6.1) with Nehalem processors (2x2.8 Quad intel Xeon) and performance is suffering with hyper-threading enabled. I can uncheck the hyper-thread checkbox in the Processor pane, but as soon as I reopen the pane it is checked again. A restart does not work either. I have tried to talk to Apple folks and I don't think they are aware that this is a real problem.

wbsimey
Jan 22, 2010, 02:32 PM
An Apple xserve tech suggested I try setting the NVRAM to 0 with

NVRAM SMT=0

then restart OS

this eliminated the hyper-threading checkbox from the processor preferences pane, but it appears that 16 cores are still available instead of 8, which is what we want. Will test performance later today.

gglockner
Apr 8, 2011, 06:28 PM
An Apple xserve tech suggested I try setting the NVRAM to 0 with

NVRAM SMT=0

then restart OS

this eliminated the hyper-threading checkbox from the processor preferences pane, but it appears that 16 cores are still available instead of 8, which is what we want. Will test performance later today.

This has to be run as root:

sudo nvram SMT=0

Otherwise, this is exactly what's needed. Even works with the 64-bit kernel.

beto2k7
Apr 8, 2011, 07:13 PM
This has to be run as root:

sudo nvram SMT=0

Otherwise, this is exactly what's needed. Even works with the 64-bit kernel.

really??? replying a thread that is over a year old....

Joshuarocks
Apr 8, 2011, 07:56 PM
Why would u wanna turn it off?

Behemecoatyl
Apr 8, 2011, 08:34 PM
really??? replying a thread that is over a year old....

So making a useless and stupid reply (yours) is a better option?

Umbongo
Apr 8, 2011, 09:29 PM
Why would u wanna turn it off?

There were performance degradation issues with some applications with hyper-threading enabled compared to when it wasn't.

gglockner
Jul 18, 2011, 10:35 PM
Why would u wanna turn it off?

In some applications, hyperthreading makes things substantially slower. This is true for the type of numerical (scientific) computing that I do for my work.