Message boards : BOINC Manager : Overheating CPU shuts down machine. Code/Solution Given !
Message board moderation
Author | Message |
---|---|
Send message Joined: 17 Jan 08 Posts: 2 |
PROBLEM: Temperature. I periodically have my dual core laptop wintel box SHUT DOWN with no warning whatsoever, because it overheats. Just "drops dead" ! I have the settings to take 88% CPU time, etc. etc. That is, I am trying to use BOINC's (currently inadequate) settings to "manage temperature". SOLUTION: Enhance BOINC Manager to sense an overheating machine (sense temperature) and ... stop running until the machine cools down. MARKETING: Having BOINC Manager seen as responsible for dropping machine with no warning will Strongly Discourage people from running BOINC on wintel PCs BACKGROUND: I have read about the 3rd party add-ons, etc, etc. I say have BOINC become directly wintel PC aware, and manage temperature itself. HOW TO DO IT: Below, is a URL (many on Microsoft's site in the vein) and a code-snippet to start doing the job. Thank you. ------------- (1) http://msdn2.microsoft.com/en-us/library/aa394493.aspx (2) -- snippet -- Implement this, to keep machines from overheating and SHUTTING DOWN, please. Second I recommend you read this thread about how to get a CPU temperature by VB.net code. We can find a CPU temperature reading in the rootWMI namespace, MSAcpi_ThermalZone Temperature class. Current Temperature is the CPU temp in 0.1 degrees Kelvin. We need to convert to Celsius by subtracting 2732 and dividing the result by 10. Also note that to measure the temperature of the CPU the users motherboard has to have a sensor. No sensor, no go. Here is the vb.net code snippet to get a CPU temperature. Code Block Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim searcher As New ManagementObjectSearcher( _ "rootWMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature") For Each queryObj As ManagementObject In searcher.Get() Dim temp As Double = CDbl(queryObj("CurrentTemperature")) temp = (temp - 2732) / 10.0 MessageBox.Show(temp.ToString) Next Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try End Sub End Class |
Send message Joined: 16 Apr 06 Posts: 386 |
If a PC shuts down due to overheating, it implies that the cooling system is faulty in some way (since even the CPU's inbuilt thermal throttling has failed to control the temperature). The most common reason is due to a build-up of dust on the heatsink and fan, but other reasons can include a broken fan, a heatsink which has come loose from the CPU, incorrectly applied thermal paste, obscured inlets, or perhaps an excessive CPU voltage. Laptops are particularly difficult to keep cool, but solutions include raising the laptop off the desk slightly, or using a 'cooling pad' to blow air into the laptop's inlets. Personally (and I speak only for myself), I don't think it's Boinc's job to try to cope with hardware faults. The CPU & Bios is much better placed to handle the CPU temperature, since it can modify the voltage and frequency as needed to control the temperature, which a mere application cannot do. Should every game track temperature? Every database, every spreadsheet, every media tool? |
Send message Joined: 29 Aug 05 Posts: 15574 |
The problem with using the Windows API to control/check the CPU temperature is that it only works on Windows. BOINC is programmed to be platform independent. So whatever the solution, it should be compatible with Windows, Mac, Linux, BSD, Solaris, you just name an OS that BOINC can be ported at and compiled on and it should be compatible out of the box, without the need to take out parts of the software. |
Send message Joined: 17 Jan 08 Posts: 2 |
(1) HARDWARE PROBLEMS: The laptop is brand new and has zero "hardware problems". The comment/speculation is not relevant to my machine (or most ?) people's experience with BOINC Mgr. Moving on ... (2) Heat Generation is expected, of course.: BOINC, by it's very aggressive nature (God bless it) tries to load your machine agressivly. That is fine and expected. Nobody is asking BOINC Mgr. to " ... deal with hardware faults". I *am* suggesting BOINC Mgr. deal with a potential "Market Adoption Issue" for their wonderful software. Aggressive loading will cause aggressive heat generation. Moving on ... (3) Cross-Platform applications: Great idea. Love it. I am not particularly in love with Microsoft's closed systems and unfair market domination. That is not relevant, moving on ... (4) All modern Unix/Linux and PCs have some access to know what the temperature of the system is. BOINC Mgr. should consider reading this Temperature info and doing "something". If BOINC Mgr. does not do this, on PCs, the PC BIOS will sometimes (often) just shut the machine down. Without warning. Why cant' BOING Mgr. have a "Customizable Preference" to have the user to enter that " At XXXX degrees Celsius , Suspend BOINC Operations Until temp goes to YYY degrees Celsius " ? ? If BOINC does not consider adding this preference, eventually, sombody will fry their machine and the word will spread that BOINC is a "machine killer". SUMMARY: Consider the request for the good of BOINC |
Send message Joined: 25 Nov 05 Posts: 1654 |
People HAVE fried their laptops before. In at least one case, it cracked the wooden desktop that it was sitting on. In most cases, these problems can be fixed by apply liberal amounts of common sense. |
Send message Joined: 13 Aug 06 Posts: 778 |
I don't see how BOINC can be responsible for deciding maximum safe operating temperatures for every type of CPU, which would probably mean almost every type that's ever been manufactured for home use. There are already a number of utilities that do this and can be downloaded free of charge. You can have one of these in the Startup menu or as an icon on the desktop, or even constantly running and showing the temps in the system tray. I think it's Everest that conveniently displays a bright flame if the CPU is too hot. Here's Speedfan. |
Send message Joined: 16 Apr 06 Posts: 386 |
(1) HARDWARE PROBLEMS: Sadly brand-new machines often have faults. These tend to occur due to damage while being shipped, or the component has never been run for a significant period of time before.
All modern laptops use thermal throttling - it is a key function of current mobile CPUs, and this was introduced before thermal throttling was introduced on desktop CPUs. For a laptop to simply shut down indicates that it is faulty. Return it for a warranty repair. On desktop PCs, thermal throttling was introduced more recently (2005?). Older PCs than that may suffer shutdowns, and newer desktops will also suffer shutdowns if faulty. My PC had a loose heatsink when delivered. It happens. Frequently. |
Copyright © 2025 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.