Restricting BOINC GPU usage, options for throttling it or using one GPU in a multi-GPU system

BOINC is a software that you can use to contribute your computer time to various science projects, I am a fan of [email protected] and World Community Grid, limiting GPU in BOINC is not as easy as CPU, in this post, I’m going to show the different ways that this can be done.

When it comes to controlling how much GPU the BOINC use, you have several options:

1- Use the system built in options to restrict how much power your GPU or CPU consumes (not a good option)
2- Use a software called TThrottle (not as effective as it should be)
3- Use BOINC client configuration file to restricts various elements of your computing (your best option in my opinion)

The problem with GPU usage is that it is not like CPU that you can curb how much of it should be used. It is either in use and utilized completely 100%, or it is not in use, so the BOINC team really can’t limit the GPU use the way they do for CPU, it is not their problem, it is how the GPUs are made, but still, there is some not so perfect ways still, I’ll explain all of them blow:

1- Using the system built in options to restrict BOINC

With this option you can restrict how much electricity reach your CPU/GPU, and with lower electricity, comes lower usage of your hardware, and of course lower performance, I’ll particularly explain how it’s done in Windows 10, but the similar concept should apply in other operating systems, go to your Control Panel > Power Options, first set your plan to Balanced, then go to Change plan setting > Change advanced power setting,  and from there go to Processor power management > Maximum processor state, and set it to let’s say 80%, Also if you have an Intel integrated graphic card and your machine is a laptop, In Intel(R) Graphics Settings  change it to Maximum Battery Life.

I don’t recommend using this option, because in addition to throttling the BOINC GPU usage, it’ll effect your overall  system performance. 

2- Using a software called TThrottle

 There is not much to this option really, you just download it, and you’ll define the maximum temperature allowed when using your GPU, and the BOINC will throttle its use, if it reaches that limit.

 3- Use BOINC client configuration file

You can also control the BOINC usage through Client configuration file. This file is not present by default, and you must create it yourself, create a file called cc_config.xml and place it in C:ProgramDataBOINC if you use window and if not, take a look at this, for our case we have multiple GPU and we want to disable it for some reason, I’ve disabled it because it bogged down the Windows user interface, I wanted my dedicated GPU to be utilized by BOINC and my integrated one handle my Windows graphical user interface, so here is the rules I’ve used in my cc_config.xml:

<cc_config>
<options>
<use_all_gpus>1</use_all_gpus>
<ignore_intel_dev>0</ignore_intel_dev>
<report_results_immediately>1</report_results_immediately>
</options>
</cc_config>  

First we set the use_all_gpus element to 1, it’s a flag that simply tell BOINC to go ahead and use all of my GPUs, and then we specify that we want our first Intel GPU be ignored by BOINC (it starts at 0), here is my configuration file, if you want to ignore any other kind of GPUs, you can use the specific element for it, as explained in Client configuration page:

<ignore_ati_dev>N</ignore_ati_dev>
Ignore (don’t use) a specific ATI GPU. You can ignore more than one.
<ignore_cuda_dev>N</ignore_cuda_dev>
Ignore (don’t use) a specific NVIDIA GPU. You can ignore more than one. Only used in 6.10.19 till 6.12.41.
<ignore_intel_dev>N</ignore_intel_dev>
Ignore (don’t use) a specific Intel GPU.
<ignore_nvidia_dev>N</ignore_nvidia_dev>
Ignore (don’t use) a specific NVIDIA GPU. You can ignore more than one. Replaces <ignore_cuda_dev/>.

I hear a lot of people say the BOINC developers suck, they should add the restriction features to BOINC, but it’s not their fault, it’s just that the GPU doesn’t work that way.

Share...
 

Hamid Mosalla

Hi, I'm Hamid Mosalla, I'm a software developer, indie cinema fan and a classical music aficionado. Here I write about my experiences mostly related to web development and .Net.