PDA

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.