Disable temporary a CPU core for another application

mikey
mikey
Joined: 22 Jan 05
Posts: 12701
Credit: 1839103661
RAC: 3650

RE: It would be useful to

Quote:
It would be useful to assign the percentage of cpu cores used by time, so that all cores could be utilized during off hours, and reduced during work hours.

In the Beta version of Boinc, 7.6.2, there are settings to stop crunching during certain hours, not just turn the network usage off but actually tell the pc to stop crunching during business hours for example. Maybe in the future this could be expanded to a reduction percentage option instead of just a full stoppage.

robertmiles
robertmiles
Joined: 8 Oct 09
Posts: 127
Credit: 29440881
RAC: 21040

It would also be useful to

It would also be useful to have an option that allows giving an entire CPU core to any GPU workunit that requests more than a certain fraction of a core, or at least allows giving every OpenCL workunit an entire core. The time needed to switch from running one program for running another is often high enough to cause a severe slowdown of any program using input mainly from the user.

Pooh Bear 27
Pooh Bear 27
Joined: 20 Mar 05
Posts: 1376
Credit: 20312671
RAC: 0

RE: It would also be useful

Quote:
It would also be useful to have an option that allows giving an entire CPU core to any GPU workunit that requests more than a certain fraction of a core, or at least allows giving every OpenCL workunit an entire core. The time needed to switch from running one program for running another is often high enough to cause a severe slowdown of any program using input mainly from the user.


This can and does get done. If you run Poem, it steals a CPU and it will not allow work on that CPU at the same time. So the setting can be done. Just most GPU work does not need a whole CPU to compute.

robertmiles
robertmiles
Joined: 8 Oct 09
Posts: 127
Credit: 29440881
RAC: 21040

RE: RE: It would also be

Quote:
Quote:
It would also be useful to have an option that allows giving an entire CPU core to any GPU workunit that requests more than a certain fraction of a core, or at least allows giving every OpenCL workunit an entire core. The time needed to switch from running one program for running another is often high enough to cause a severe slowdown of any program using input mainly from the user.

This can and does get done. If you run Poem, it steals a CPU and it will not allow work on that CPU at the same time. So the setting can be done. Just most GPU work does not need a whole CPU to compute.

It can and does get done IF THE SETTING IS APPLIED AT THE SERVER. I'm suggesting allowing a similar setting applied at the client instead.

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5872
Credit: 117742745509
RAC: 34856016

RE: It can and does get

Quote:
It can and does get done IF THE SETTING IS APPLIED AT THE SERVER. I'm suggesting allowing a similar setting applied at the client instead.


This has been available since BOINC 7.0.42. You just need to place an app_config.xml file in the EAH project directory. This file is documented towards the bottom of the linked page, under the heading "Application Configuration".

Using BRP6 here as an example, the server settings default to 0.5 CPUs for an AMD GPU task and 0.2 CPUs for an NVIDIA GPU task. Let's say you had an AMD GPU that was running too slow under those default values, i.e. 0.5 CPUs means that there is still part of a core available for CPU tasks so BOINC will be running CPU tasks on all cores and this may slow down your GPU.

To reserve a full core for GPU support you should use the following app_config.xml file (cut and paste this into a simple text editor and make sure it is called exactly app_config.xml and move it into the einstein.phys.uwm.edu folder):-

[pre]

einsteinbinary_BRP6

1.0
1.0

[/pre]
If you wanted to run 2 concurrent BRP6 tasks and reserve a full core for each GPU task, all you would need to change in the above is the setting for gpu_usage. Just change the number from 1.0 to 0.5 and you will get 2x GPU tasks and 2 free cores. You can do this while BOINC is running. Then you just click on "Read config files" in the BOINC Manager -> Advanced menu.

As an exercise for anybody reading this, what value(s) would you need to set if you wanted to run 3 concurrent GPU tasks and have exactly 2 free cores?

The app_config.xml mechanism is pretty user friendly as it is. Until something completely point & click comes along, anyone wanting to run GPU tasks efficiently needs to at least know that this is available. The above example is a minimalist one. There are other options that can do even more - read the documentation.

Cheers,
Gary.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.