Saturday, January 17, 2009

Password cracking vs. CPU throttling

I can't crack passwords for long on my laptop because it quickly overheats.

I show the process to the right using a program called "RMClock" that detects CPU throttling. The bottom graph shows temperature, the top graph shows speed. When I start the password cracking software, the temperature rises quickly to the maximum. It reaches the maximum temperature and begins to throttle in only 10 seconds.

My CPU is a 1.86 Core 2 Duo. When it overheats, it gets clocked down slightly to 1.6-GHz. When the overheating problems gets worse, the clock is lowered again to 0.8-GHz. When it cools off, the speed jumps up again until it overheats again, then it jumps down. It keeps going up and down like this forever (or until I the cracking software).

Curiously, the laptop normally runs underclocked at 0.8-GHz, even when idle. It waits for me to run a program to boost it up to the full speed of 1.86-GHz.

Using both cores doesn't necessarily make my laptop crack passwords faster -- it just spends more time throttled due to heat.

My desktop doesn't have this problem. It's got 4-cores chugging away at 2.4-GHz and it's not exceeding 56-degrees. The problem, it seems, is that the cooling on the Mac Book Air sucks (or rather, blows). I put my hand on the back near the vents and I can barely feel the hot air coming out. This laptop is sexy as all get out, so of course I have to keep it, but it's got a lot of limitations as a computer.

UPDATE: Apparently, this overheating problem is well-known, and occurs under MacOS X as well as Windows. It's mentioned in the Wikipedia entry on the MacBook Air

UPDATE: Apparently, the solution for me is "undervolting". I can use the RMclock utility mentioned above, or the "CoolBook" utility under Mac OS X to artificially lower the voltage of the processor. Small changes in the voltage result in large decreases in the power consumption, and hence heat. Of course, in theory, this will make my machine less stable. At 1.86-GHz, the default voltage is 1.05v. I lowered this to the minimum of 0.925v, and the system seems perfectly stable and a lot cooler.

UPDATE: I ported the code to Mac OS X and ran it. Like Windows, the processor runs at 800-MHz, and jumps up to 1.86-GHz under load. Unlike Windows, a command-line utility like my password cracker doesn't seem to be recognized as load, so won't bump up the speed. Thus, the passwords are being cracked at 800-MHz.


Sniglom said...

It's not strange that it's running at a lower speed when idle. That is to make the laptop cooler, more quiet and having longer battery life. Having it throttle during heavy load in normal room temperature is a warranty issue imho.

ibneko said...

Weird. You may want to either get your fans checked out, or look around for something that'll let you manage the fans manually. All the mac books and mac book pros I've encountered have decently strong fans when they kick in full mode.

nickhacks said...

I can't tell from those images, but about how long can the MacBook Air run at full load before it begins to throttle?

While I can understand the need to throttle the CPU to prevent overheating, especially in abnormal conditions such as confined spaces (shoving it into a backpack while its still running), I find it rather odd that it cannot sustain 100% load in normal conditions.

If it isn't just your computer, but a design issue with the model, that is one interesting design decision that I wish I would've been around to hear the discussion for and just go 'WTF?'

Robert Graham said...

I updated my post. It takes 10 seconds running at full load to reach the maximum temperature and begins to throttle.

MadmanTM said...

i would try to run OCCT, and try to see if you get the same issue.

Occt will check your voltages and tell you what fluctuates.

hope this helps.