Boinc not respecting "Use at most XX% CPUs"
Describe the bug When running tasks requiring more then one core the client allows more cores to be used then the setting grants. Pictures below is from an 8 core Apple M1 system.
Steps To Reproduce
- Run Boinc with multiple projects. At least one that demands multiple cores.
- Wait
Expected behavior Boinc should not use more cores then specified in settings.
Screenshots
System Information
- OS: MacOS 13.3
- BOINC Version: 7.24.1
Additional context
@davidpanderson, could you please take a look?
I have the same issue on Windows 10. The application also ignores my suspension of tasks. There's still usage of CPU in task manager. Totally unexpected. I think I'll have to uninstall the app after so many years. It is not, repeat, not supposed to run my computer against my wishes. By the way, ctrl+shift+e doesn't work. To be fair, after I manually exit and reload the client, the problem doesn't reproduce and it's all fine. However, I'm not going to terminate - turn on the client with every reboot of the computer, and I'm honestly not supposed to.
@radio303, thank you for the report. We will try to fix it and ship in the next release. Meanwhile you can downgrade to the previous version of BOINC.
The client has a 1-CPU job and a 2-CPU job, and there are 2 CPUs. It runs the 1-CPU job. Should it run the 2-CPU job? If so it will be using too many CPUs. If not there will be an idle CPU. In the past there have been more complains about the latter than the former.
Perhaps the policy should be changed to use the latter if preferences limit the # of CPUs.
There was several more 1 CPU tasks downloaded. It should run two 1 CPU tasks or one 2 CPU task in this case.
I have noticed that the problem occurs when two 1 CPU tasks is running and then a 2 CPU task starts. Only one of the 1 CPU tasks stops. Both should stop.
Maybe one of the 1-CPU tasks is close to deadline and can't be delayed? And also it might be applicable to the other 2-CPU task as well?
It was at least 10 days before the deadline of the running 1 CPU task. The estimated remaining time was about 30 minutes. See picture in the first post.
The problem arises in deciding when to transition between "single multi-core task" mode, and "multiple single-core tasks" mode. Leaving it until deadline pressure forces a switch risks extended runs with the CPU locked into one mode or the other, at risk to resource share. We need to have a solution which avoids that.
I had the same problem today. I have BOINC set to use a maximum of 2 cores, and I was running a 2-core task from PrimeGrid. An hour later, PrimeGrid sent me a 1-core task, and BOINC started it immediately, while the 2-core task was still running. So now BOINC is running on 3 cores despite my settings specifying a maximum of 2.
I don't understand why it does that. If 2 out of 2 cores are being used by an ongoing task then it shouldn't start a task on a 3rd core - it should just wait until the 2-core task is done.