Less than 1.0 CPUs on a GPU task causes scheduler thrashing

Glenn Hawley, RASC Calgary
Glenn Hawley, R...
Joined: 6 Mar 05
Posts: 48
Credit: 892097060
RAC: 347708
Topic 224520

Any time I get a GPU task wanting 0.5 CPUs or 0.9 CPUs, the scheduler tries to run one more task than there are CPU cores available.

Productivity collapses and task duration skyrockets, presumably due to the CPU cores having to swap tasks continually.

As long as all GPU tasks want 1 CPU, all is well.

The only solution I have found thus far is to deselect "Binary Radio Pulsar Search (Arecibo, GPU)" and "Gravitational Wave search O2 Multi-Directional GPU" so that only "Gamma-ray pulsar binary search #1 (GPU)" is being downloaded... but that solution lacks aesthetic appeal.

Worse, my newest computer, assigned the location "work", still downloads the Arecibo GPU tasks (wanting 0.5 CPUs) even though I've deselected them in the project preferences. I have to watch those like a hawk, and abort them when they show up. But this solution has even less aesthetic appeal.

Is there a way to force the scheduler to assign only one task per CPU core, regardless of what the task claims it needs?

Harri Liljeroos
Harri Liljeroos
Joined: 10 Dec 05
Posts: 4343
Credit: 3206811791
RAC: 1976618

Yes, you can do it with an

Yes, you can do it with an app_config.xml file placed in your einstein directory. See here: https://boinc.berkeley.edu/wiki/Client_configuration#Project-level_configuration

archae86
archae86
Joined: 6 Dec 05
Posts: 3157
Credit: 7221554931
RAC: 967170

If you prefer to stick to

If you prefer to stick to preferences set at your account on the Einstein web site, then you could try setting:

Preferences|Computing|Processor Usage

Use at most: nn% of the processors

to just low enough a value of nn to get behavior more to your liking.

This affects the fetching assumptions, and affects the number and mix of tasks launched.  It does nothing to influence how many CPUs the launched tasks actually run on.

Glenn Hawley, RASC Calgary
Glenn Hawley, R...
Joined: 6 Mar 05
Posts: 48
Credit: 892097060
RAC: 347708

I've found my way to that

I've found my way to that client-config file, and I see I can limit the CPU versions to 14 max-concurrent (out of 16 cores), as well as specifying 1 CPU per GPU task. 

I'll have to do much the same for the oth3er computer as well, but that should hopefully get rid of the problem.

Thanks much!!

 

Glenn Hawley, RASC Calgary
Glenn Hawley, R...
Joined: 6 Mar 05
Posts: 48
Credit: 892097060
RAC: 347708

Reducing the number of

Reducing the number of processors available to BOINC doesn't offer the unused CPUs to the GPU tasks... it just forbids the use of some of the CPUs entirely.

 

archae86
archae86
Joined: 6 Dec 05
Posts: 3157
Credit: 7221554931
RAC: 967170

Glenn Hawley, RASC Calgary

Glenn Hawley, RASC Calgary wrote:
Reducing the number of processors available to BOINC doesn't offer the unused CPUs to the GPU tasks... it just forbids the use of some of the CPUs entirely.

That turns out not to be the case.  That number influences task fetch quantity, and task launches.  

BOINC has no such behavior as forbidding use of CPUs.  The assignment of tasks to CPUs is an OS function.  

I put this point in to avoid that someone else coming on this thread might pick up wrong information.  I recognize that you have found a mechanism you prefer.

Glenn Hawley, RASC Calgary
Glenn Hawley, R...
Joined: 6 Mar 05
Posts: 48
Credit: 892097060
RAC: 347708

archae86 wrote: BOINC has no

archae86 wrote:

BOINC has no such behavior as forbidding use of CPUs.  The assignment of tasks to CPUs is an OS function.  

I put this point in to avoid that someone else coming on this thread might pick up wrong information.  I recognize that you have found a mechanism you prefer.



Any time I try , even putting % of CPUs at 99, only 15 tasks run, total.

Set at 90%, only 14 tasks run.

 

Comment viewing options

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