Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

gekkonaut

macrumors newbie
Original poster
May 8, 2015
16
0
Is it a myth? Seems like every other blog mentions you shouldn't do "anything heavy" because heat sensors will force throttle the cpu. Is this BS?

Mine won't arrive for another week, so I can't test this more myself. I did torture test one a bit in the apple store - multiple homebrews compiling things, playing flash videos, etc, and although it got a little warm, I couldn't detect any throttling.

Has anyone experienced the New MacBook actually throttling?

On a side note, what's the best app to detect throttling? I use iStat menus, but it doesn't seem to keep track of frequency. It seems like Intel's power gadget might be useful, but I couldn't install it in the store due to admin requirements.
 
The simplest way to push all the cores in the CPU to the max is to do the "yes" command test in terminal.

1. open terminal
2. type the following:
Code:
yes > /dev/null & yes > /dev/null & yes > /dev/null & yes > /dev/null &
3. to stop the processes, type:
Code:
killall yes

I used Intel's power gadget to track temperature and CPU. I saw some throttling when using the method above; screenshot attached. CPU shot up as high as 2.4, then dropped to a steady 2.0.

I have the 1.2GHz/512 rMB.
 

Attachments

  • Screen Shot 2015-05-13 at 11.30.38 AM.png
    Screen Shot 2015-05-13 at 11.30.38 AM.png
    51.5 KB · Views: 253
As I understand it, the heat throttling is simply to stop turbo boosting and return to the base processor speed (1.1, 1.2, or 1.3 GHz). I don't believe it will throttle lower than that.
 
The purpose of CPU heat throttling is to protect the CPU from damage due to overheating. It is built into the CPU chip to prevent damage, mainly due to cooling failure. On most systems you will not see this in operation, as the cooling will take care of it before the CPU reaches max operating temperature. Also, with low power CPUs, passive heat sink cooling will be sufficient.

If you want to see throttling in operation, remove the heatsink from a desktop CPU while it's under high load. The CPU will immediately throttle down to an idle state. Otherwise, it would become a cinder within seconds.
 
That's impressive!

The simplest way to push all the cores in the CPU to the max is to do the "yes" command test in terminal.

1. open terminal
2. type the following:
Code:
yes > /dev/null & yes > /dev/null & yes > /dev/null & yes > /dev/null &
3. to stop the processes, type:
Code:
killall yes

I used Intel's power gadget to track temperature and CPU. I saw some throttling when using the method above; screenshot attached. CPU shot up as high as 2.4, then dropped to a steady 2.0.

I have the 1.2GHz/512 rMB.

This is a better result than I would have expected. Assuming the "yes" commands you ran actually max out all cores/hyper-threads to nearly 100%, then it would seem that it's capable of maintaining a respectable turbo boost to 2.0GHz long-term. I would have expected it to drop back to it's base frequency over time.
 
e336a0e0931f8941498af71e7d4f571f.jpg


Here is a screenshot of loads on CPU after installing OS X 10.10.4 beta. In 10.10.3 the OS does not spare Core M processors enough time to cool itself down. The CPU usage graph was more like a continuous block. I have played with 10.10.4 beta yesterday evening and my rMB works much more efficiently. It seems like Apple couldn't keep up with OS update plan when they put the Retina MacBook on sale.
 
Very interesting observations! Thanks!

Thitiv, very interesting that you're saying 10.10.4 doesn't give the CPU time to cool. Wouldn't this effectively be throttling at the OS level? Are you certain about that? Does anyone know if that impacts performance at all?
 
@gekkonaut, it is 10.10.3 which has been released that doesn't give the CPU spare time to cool. The unreleased, beta version of 10.10.4 does. I am quite certain because the CPU usage graph under continuous load is "square" which means the CPU is loaded heavily all the time. The shape in 10.10.4 is like the picture above. You can compare the performance to running. By design Core M works like a marathoner, at moderate speed for an extended period of time rather than a 100-meter sprint at extreme speed.

----------

By the way, I was a ThinkPad overclocker several years back before I moved to Mac. Throttling is controlled by the physicals in the CPU. When the CPU gets hotter, due to extended full load and no active (fan) cooling, it slows down to protect itself from getting "burned" out. Throttling is not controlled by the OS. It's by the CPU. But ordering the CPU to work hard until it reaches such condition is obviously responsible by the OS.
 
This is a better result than I would have expected. Assuming the "yes" commands you ran actually max out all cores/hyper-threads to nearly 100%, then it would seem that it's capable of maintaining a respectable turbo boost to 2.0GHz long-term. I would have expected it to drop back to it's base frequency over time.

What the 'yes' method above does is claim all available CPU time from the OS — this is why CPU is reported at 100% utilisation. But its not really pushing the CPU to its limits. To do that, you'd need to continuously run some code that is able to load up every ALU the CPU has every cycle. Then you should see much more significant throttling, as the CPU would heat up much quicker. Writing such code is far from being trivial though.

----------

By design Core M works like a marathoner, at moderate speed for an extended period of time rather than a 100-meter sprint at extreme speed.

Actually, from how I understand it, Core M is a sprinter. Its most efficient for short bursts of high activity then long-term sustained moderate activity. This is what allows it to perform so well in everyday tasks — because normal computing (Internet, Email, Office) is all about bursts of activity with very long waiting pauses in-between.
 
What the 'yes' method above does is claim all available CPU time from the OS — this is why CPU is reported at 100% utilisation. But its not really pushing the CPU to its limits. To do that, you'd need to continuously run some code that is able to load up every ALU the CPU has every cycle. Then you should see much more significant throttling, as the CPU would heat up much quicker. Writing such code is far from being trivial though.


Agreed. I tested mine by running a full system virus scan in my Parallels Desktop Windows VM. That taxes the machine a lot.

----------

Actually, from how I understand it, Core M is a sprinter. Its most efficient for short bursts of high activity then long-term sustained moderate activity. This is what allows it to perform so well in everyday tasks — because normal computing (Internet, Email, Office) is all about bursts of activity with very long waiting pauses in-between.


Your understanding is correct. Sorry for my bad analogy. The CPU activity graph from 10.10.4 reflects what you explains which is the nature of Core M CPU. 10.10.3 pushes the CPU at full speed for an extended period which is against its nature.
 
If you want to see throttling in operation, remove the heatsink from a desktop CPU while it's under high load. The CPU will immediately throttle down to an idle state. Otherwise, it would become a cinder within seconds.

aka, if the CPU overheats too much, it will completely turn off, shutting down your computer as if you turned it off.
 
What the 'yes' method above does is claim all available CPU time from the OS — this is why CPU is reported at 100% utilisation. But its not really pushing the CPU to its limits. To do that, you'd need to continuously run some code that is able to load up every ALU the CPU has every cycle. Then you should see much more significant throttling, as the CPU would heat up much quicker. Writing such code is far from being trivial though.

Want to light up the CPU, run Prime95 equally such tests are not representative of day to day use.

If you really want want to get into thermals and throttling go over to this thread on the MBP forum for far more technical detail:

https://forums.macrumors.com/threads/1731178/


Q-6
 
The simplest way to push all the cores in the CPU to the max is to do the "yes" command test in terminal.
Not really. The yes command will try to max out but in reality it doesn't. If you start other applications they'll be started and just run (you can easily run several vm's and 8 yes commands at the same time on a quad core cpu without HT). If it were to max out the cpu that wouldn't be possible since the machine (cpu) is too busy. After a while the machine settles down at a certain steady speed.

That's exactly what you were seeing (it settled down on a steady 2.0). If the machine was throttling due to heat you'd not have seen it settle down on a steady speed but you'd have seen the speed decrease more and more due to heat going up and up. The lowest possible speed of the cpu in the MB is either 1.1, 1.2 or 1.3GHz, not 2.0GHz so there is still a lot of room there.

The yes command is a simple way to create a high workload but it isn't meant to max out the cpu nor will it ever be able to do so. If you want to max out the cpu you should use other tools. Also be aware that the OS is also at play here. You can't simply detect cpu throttling.
 
The lowest possible speed of the cpu in the MB is either 1.1, 1.2 or 1.3GHz, not 2.0GHz so there is still a lot of room there.

.

This isn't quite correct. All modern Intel CPUs will idle at well below their nominal base frequency. Have a look at Intel Power Gadget when the machine is idle - you'll probably see frequencies in the 500-800MHz range.
 
This isn't quite correct. All modern Intel CPUs will idle at well below their nominal base frequency. Have a look at Intel Power Gadget when the machine is idle - you'll probably see frequencies in the 500-800MHz range.

This is true, my rMBP with base frequency of 2.5ghz idles at around 0.80ghz to 1.20ghz.
 
This isn't quite correct. All modern Intel CPUs will idle at well below their nominal base frequency. Have a look at Intel Power Gadget when the machine is idle - you'll probably see frequencies in the 500-800MHz range.
Throttling due to heat when the machine is idle is highly unlikely. If that happens the machine is in a situation that isn't suited for a human being (being on fire for example). Or in other words, what you are describing is something completely different from what this topic is about. This is about the cpu being pushed to the max in order to generate heat to see if the cpu throttles back or not.

Load != idle. So in the end it's actually your reply that isn't correct since this is not about machines in an idle state ;)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.