BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
2.03k stars 449 forks source link

More cores used than user limit #1812

Open ibethune opened 7 years ago

ibethune commented 7 years ago

I have a mixture of single-threaded and multi-threaded applications running from PrimeGrid. My computing preferences are set so I have 4 cores available:

Wed 15 Mar 22:23:50 2017 |  | max CPUs used: 4

The multi-threaded apps are set to use 4 threads and have the avg_ncpus and max_ncpus attributes set to 4.

In the initial configuration, 4 single-threaded tasks are running and 2 multi-threaded tasks are idle:

a

If I suspend one of the running tasks (so only 3 cores are being used), BOINC starts up one of the multithreaded tasks (thus using 7 cores, more than the limit of 4!)

b

If I resume the suspended single-threaded task, BOINC then pauses all the other single-threaded tasks, taking the total number of cores back down to 4 as expected.

c

I think that the correct behaviour should be that the multi-threaded is started, the other 3 single-threaded tasks should go into the waiting state, such that the total number of cores being used is always less than the specified limit.

Toby-Broom commented 7 years ago

I see somewhat similar behavior with LHC, there is the concept of a Job on there site and within BOINC, I find it very confusing to configure. If I allow 4 jobs then I can run 4x4core tasks with over uses 8 cores in this example as job does not equal a core. I feel that number of CPU's would be better however this is already take with the multicore tasks options.

Overtonesinger commented 7 years ago

@ibethune , nice catch! Pretty easy to reproduce and thus to track and to fix. Thank You!