Version 2 (modified by 11 years ago) (diff) | ,
---|
Windows Issue
Don't compute while movie playing
Problem: while a movie is playing there's no mouse/kbd input, and CPU usage can be low, so BOINC starts computing, possibly with GPU, and the playback is messed up.
How does BOINC know if a movie is playing? This was asked here: http://stackoverflow.com/questions/1154923/detect-movie-being-played-windows and the only answer was: make a list of video players, and see if any of them is running. That approach has many drawbacks.
Rom thinks there's a Windows API that media players call to tell the system not to start a screensaver. If we could read this flag, we could not compute when it's set.
The SystemParametersInfo() API has some stuff related to screensavers: http://msdn.microsoft.com/en-us/library/ms724947%28VS.85%29.aspx but it seems to be just whether the user has registered a screensaver (not whether it's eligible to run).
GPU usage tools: http://www.ozone3d.net/gpushark/
Don't turn on the fan
People don't like it when BOINC makes their fan go on high, especially if it pulses because of CPU throttling.
I think a good default policy would be to limit CPU usage (by # of cores and/or throttling) to keep from raising the fan speed. There are many possible policies. For any of them we need to be able to read the fan(s) speeds.
Some possibly relevant stuff:
Windows Management Instrumentation: http://msdn.microsoft.com/en-us/library/windows/hardware/Dn614028(v=vs.85).aspx
Fan management tools http://www.almico.com/speedfan.php