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: and the only answer was: make a list of video players, and see if any of them is running. That approach has many drawbacks.

There's a Windows API that media players call to tell the system not to sleep: If we could read this flag, we could not compute when it's set.

The SystemParametersInfo() API has some stuff related to screensavers: but it seems to be just whether the user has registered a screensaver (not whether it's eligible to run).

GPU usage tools:

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:

Fan management tools

Reading/Writing? CPU MSR: Linux: Win:

Using MSR to calculate temperatures: Intel:

Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 3B:

Open Hardware Monitor (Temp and Fan speed for Intel (CPU)/AMD (CPU)/Nvidia (GPU)/AMD (GPU): License: Mozilla Public License 2.0 (MPL)

GPU Fan Speed Detection: Nvidia API: NvAPI_GPU_GetTachReading ( AMD API: ADL_Overdrive5_FanSpeed_Get (Doc Unknown)

GPU Load API: Nvidia API: NvAPI_GPU_GetCurrentPstate/NvAPI_GPU_GetPstates20 ( AMD API: ADL_Overdrive5_CurrentActivity_Get (Doc Unknown)

Last modified 8 years ago Last modified on May 2, 2014, 7:15:12 PM