I just wrote a script to throttle a heavy number-crunching program, to prevent the CPU from overheating. I can set any upper temperature limit, and successfully keep the CPU always below that limit. (Actually, my script predicts the temperature a few seconds ahead from current and recent temperatures, so it can throttle the main program before reaching the threshold, but this is a technical detail.)
Question: What should that limit be? What considerations should go into picking the limit?
Routine use of the main program always puts the CPU temperature in the 60-70C range. The "sensors" command from the lm-sensors package shows "crit" temperature of 95C. I assume this is the threshold which, when reached, causes an instant total power-down. Obviously, I want to stay far from that. How far? What I don't know if sustained temperatures of 80C is okay, or 88C, or should I keep it under 70C, or what. The lower the throttle limit, the less efficient my workflow, so I'd like to set it as high as possible without shortening the CPU's life or risking a power-down.
Answers to temperature-related questions on SuperUser, S.O. and various S.E. sites, and (dare i say) websites outside the S.O./S.E. world give some sense of normal ranges, but apparently for a CPU with a more leisurely lifestyle. My program can't do much if I keep the CPU temperature below 60C. Most people aren't theoretical physicists, it seems (shakes head, dumbfounded look on face). My heavy number-crunching program runs typically for one to fifteen hours.
BTW, this is a nice big desktop machine with plenty of good airflow. It never crashes, except after 10 to 20 minutes of solid number-crunching.
ADDITIONAL INFO: the motherboard is an Asus M4A78LT-M.
/proc/cpuinfo gives a ton of info times four (four cores) but the vital info seems to be:
model name : AMD Athlon(tm) II X4 645 Processor cpu MHz : 3100.000 cache size : 512 KB