View Full Version : BOINC: How to limit the quantity of tasks downloaded?
zombie67
02-23-19, 05:03 PM
Let's say you have an 8 thread CPU, and you want to download only as much work that can be crunched at a time. Simple enough, change the project resource share to zero, and only 8 single-threaded tasks will download. But now let's say I am using an app_config.xml file to force tasks to multi-thread and use all 8 threads, like you can do on primegrid. Even with a resource share of zero, it will download 8 tasks. Then one will crunch using all 8 threads, and 7 will sit there waiting their turn to run. Is there a way to force BOINC to download only 1 task at a time, in this situation? I though there was a option in the cc_config.xml file that would enforce a maximum number of tasks per project, but I can't find it (https://boinc.berkeley.edu/wiki/Client_configuration). Maybe I am remembering it wrong. Any ideas?
purplecfh
02-23-19, 06:35 PM
Have you tried the command
project_max_concurrent
A limit on the number of running jobs for this project.
Sent from my SM-N960U using Tapatalk
zombie67
02-23-19, 08:10 PM
Have you tried the command
project_max_concurrent
A limit on the number of running jobs for this project.
That controls the number of tasks running at once, but not the number of tasks downloaded, I think.
purplecfh
02-23-19, 08:12 PM
There is a maxcoc and a project max coc, it's worth a try at least.
Sent from my SM-N960U using Tapatalk
scole of TSBT
02-23-19, 09:36 PM
Setup multiple clients, running 1 project per client and set <ncpus> or % processors to use number of threads you want on each client.
zombie67
02-23-19, 09:46 PM
Setup multiple clients, running 1 project per client and set <ncpus> or % processors to use number of threads you want on each client.
I think that will still result in the same problem. I am already running only one project per client, just PG. And only one task is running, using all 8 threads. But BOINC insists on downloading 8 tasks, with 7 idle. I want only one task running, using all 8 threads, with no idle tasks.
FWIW, the reason for this is to be the first to return tasks instead of the wingman, so you get the credit if a prime is found. So I want no aging tasks in a queue.
scole of TSBT
02-23-19, 10:07 PM
I guess you already have your cache set really low, like .01 days/0 additional?
scole of TSBT
02-23-19, 10:37 PM
Try <fetch_minimal_work>1</fetch_minimal_work> in the cc_config.xml. I'd restart the client after setting it.
zombie67
02-23-19, 11:37 PM
I guess you already have your cache set really low, like .01 days/0 additional?
Resource share is zero.
zombie67
02-23-19, 11:43 PM
Try <fetch_minimal_work>1</fetch_minimal_work> in the cc_config.xml. I'd restart the client after setting it.
The description for that one is kinda vague.
<fetch_minimal_work>0|1</fetch_minimal_work>
Fetch one job per device (see --fetch_minimal_work).
And that points to:
--fetch_minimal_work
Fetch only 1 job per device (CPU, GPU). Used with --exit_when_idle, the client will process one job per device, then exit.
I'll give it a try. Thanks for the suggestion.
zombie67
02-24-19, 12:48 AM
It looks like fetch_minimal_work is not per physical CPU, but rather CPU thread. So it works the same as project resource zero in this scenario. Dang.
Powered by vBulletin® Version 4.2.4 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.