I recently wrote some Java code to generate images of the Mandelbrot set (fractal). I made use of the new Fork/Join facility in Java 7 to run separate threads on all four cores (2 real, 2 virtual)simultaneously, using a large number of iterations for greater accuracy. The problem is, the process runs fine for about a minute, and then it's as if someone has pulled the plug and the PC just dies.

I thought it must be the CPUs overheating, so I ran Real Temp to monitor the temperature. It's an Intel i3 processor. I can see the temperature creeping up to 70 degrees, and then it seems to level off there and run for about another 30 seconds before dying. According to Real Temp, there's still a gap of 35 degrees between the actual temperature and TJ max. I also tried disabling "CPU TM function" in the BIOS, but the problem still occurs.

A colleague suggested that it might be a power supply problem, so I borrowed a more powerful PSU (can't remember what wattage it was, but it's higher than mine which is 500W). The exact same thing still happens though.

Is anyone able to suggest what the problem might be, or what I can try next?


Thanks for all the anwers and comments. As @Anish A suggests below, I found the setting in the BIOS to alter the temperature which triggers automatic shutdown. This was set to 70 degrees. I've increased this to 75 degrees, and now I can run my program happily with all "four" cores at 100%. Real Temp reports that the temperature got as high as 73 at one point, but mostly it stays at around 70 for the duration. So I guess this BIOS setting is completely separate from the processor itself and from the TJ max temperature reported by Real Temp.

  • What hardware? Also, 70°C seems already pretty hot for modern Desktop-CPUs...mine (Core2Duo, 2,6Ghz) idles somewhere around 30°C, under pressure it goes up to 45°C and stays there. – Bobby Aug 31 '12 at 12:53
  • 1
    If your program takes up all the CPU resources, it leaves none for the operating system and other programs. Which in turn will lock up your computer. It almost seems like you put it into an infinite loop. – Phillip R. Aug 31 '12 at 12:53
  • 2
    Please change settings back to defaults. Tampering with thermal management functions will cause exactly the problem you're having. – David Schwartz Aug 31 '12 at 14:39
  • 1
    Did you look at the windows event logs? If a thermal shutdown occurred, it would be noted in the system log. – Keltari Aug 31 '12 at 16:19
  • 1
    Try running the application in a virtual machine – Shekhar Aug 31 '12 at 17:14

It is a problem with your cooling fan. Use a better cooling fan and also try water cooling, if possible.

A good cooling fan with heat sink will solve the problem.

Also, try to enable CPU Thermal Throttling option in the BIOS. It will under clock the CPU if the temperature raises above a limit.

Also, try increasing the CPU temperature shutdown temperature from the BIOS. But, don't increase it much, as it can compromise the life of your processor.

  • 2
    Water cooling is in 99.99% the cases absolute overkill...just saying... – Bobby Aug 31 '12 at 13:13
  • I know, but in extreme cases and overclocking, it makes much more sense, as it has much less sound and more effective. – Anish Sheela Aug 31 '12 at 13:17
  • @Anish A Thanks you may well be right. I couldn't find the setting for the shutdown temp in the BIOS but I'll have another look. I assumed it was currently 105 degrees since that's what Real Temp seems to think (which I acknowledge seems very high), which is what made me think it was something other than CPU overheating since I know it's not getting near that. – user155631 Aug 31 '12 at 13:18
  • Its found in power options or something like that. – Anish Sheela Aug 31 '12 at 13:19
  • Why do you suspect a problem with his cooling fan? Nothing in his problem description suggests one. In fact, with his CPU, fan problems cannot cause crashes, only slowdowns unless the fan is actually not spinning. (The CPU has thermal throttling. However, a low fan RPM may trigger an shutdown if so configured.) – David Schwartz Aug 31 '12 at 14:38

there's still a gap of 35 degrees between the actual temperature and TJ max

Ignore the reported temperature, the only important thing is "Distance To TJmax" - which is what the CPU reports (DTS) and which is what the CPU uses to control thermal protection mechanisms.

Here's what RealTemp shows after I changed TjMax for core 0 in Settings from 99 to 70.

RealTEmp display

Before the Temperature for Core 0 was shown as about the same as for the other cores, the Distance to TJ Max is unaffected by this configuration change - so that demonstrates to my satisfaction that Distance to Tjmax is the value Real Temp gets from the CPU and Temperature is it's guess based on whatever TjMax is configured to.

So If the CPU thinks DTS is 35 C there is no problem with CPU overheating.

it's as if someone has pulled the plug and the PC just dies.

Isn't that more suggestive of a PSU problem?

An old Intel doc says

a new thermal protection mechanism was introduced, allowing for the processor to automatically control the processor temperature before reaching the catastrophic shutdown temperature but at the expense of temporarily reducing processor performance. Current IA-32 processors use internal circuitry to periodically stop the internal clock to most of the processor. All interrupts during the modulated period are delayed but not lost. The processor time stamp counter continues to maintain count even during processor modulation. The duration of modulation is typically 1 msec intervals. At the end of each interval, the processor will again operate at full frequency. If the temperature is still above the second preset temperature level, the processor will again modulate the internal clock. If the temperature drops below the second preset level, the processor will continue to operate at its normal clock frequency. The effective processor performance is approximately 50% of full performance. Note that the method to modulate processor performance is not architecturally specified and is subject to change in future processors.

An Intel i5/i7 document says

PROCHOT# goes active when the processor temperature monitoring sensor(s) detects that the processor has reached its maximum safe operating temperature. This indicates that the processor Thermal Control Circuit has been activated, if enabled. This signal can also be driven to the processor to activate the Thermal Control Circuit. This signal does not have on-die termination and must be terminated on the system board.

So core i5/i7 still have the TCC trigerred (by DTS I guess) in the same way as older Intel CPU designs.

I believe "if enabled" means TCC can be disabled by BIOS (or other) settings. You might check the BIOS settings for CPU thermal control.

Thermal Trip: The processor protects itself from catastrophic overheating by use of an internal thermal sensor. This sensor is set well above the normal operating temperature to ensure that there are no false trips. The processor will stop all execution when the junction temperature exceeds approximately 125 °C. This is signaled to the system by the THERMTRIP# pin.

I suppose a mobo manufacturer could use the CPU's #PROCHOT signal to shut down the system entirely but that would be rather premature. So I'd expect the symptoms of gradual CPU overheating to be first that the CPU throttles back to an extent that should be noticeable.

All in all, what you report isn't consistent with what I'd expect of thermal shutdown in the CPU. Firstly DTS > 0, Secondly no observable decrease in CPU performance. Lastly "as if someone pulled the plug" (if you mean as if someone had literally pulled the power plug from the wall electrical outlet).

CPUID's HWmonitor shows more info than RealTemp, including GPU and HDD temps - may be useful

enter image description here

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.