Page 1 of 1

Scheduling priority in Manager.

Posted: Mon Sep 09, 2019 9:42 am
by Jeffers
Can anyone explain how the scheduling priority works in Boinc Manager?

I'd noticed that Rosetta hasn't been getting much work and doesn't seem to get new tasks unless I do a manual update.

In the event log after a task finishes the scheduler says it not getting any new tasks because it's not got the highest priority.
I've looked at this value in project properties and for Rosetta it's currently -0.1 (it was -0.2 when I l looked earlier).
Other projects have a range of values, nearly all negative values bigger than Rosetta. One project, NFS, has Zero.

All projects have an equal resources share, I've never messed with that.

So how does it work?

Re: Scheduling priority in Manager.

Posted: Mon Sep 09, 2019 10:46 am
by Woodles
Hi Jeff,

No-one can explain how the Boinc scheduling works, not even the authors! :lol:

As I understand it, the new (couple of years old now) scheduler tries to match the recent credit over the past ten days for all projects according to their resource setting.

So if you have one project running for a couple of weeks at a share of 100 then add another at a share of 1 then the second will get run exclusively until it 'catches up' proportionally with the first. Or if you have two projects at 100 share and one's been disabled/inactive for a while then becomes active again, the scheduler will favour the 'lagging' one.

It's more a long term average (can take months to settle!) than a short term control.

Has Rosetta been getting more than it's share of work previously?

You can try to force a more responsive result by setting

Code: Select all

<rec_half_life_days>1</rec_half_life_days>
in cc_config.xml which changes the number of days the average is taken over but that tends to not work well for projects with large variations in runtime/credit allocation.

Alternatively you can overrule the scheduler and set your own conditions by adding an app_config file to each project directory to limit the number of tasks the project can run:

Code: Select all

<app_config>
   <project_max_concurrent>1</project_max_concurrent>
</app_config>
Change the '1' as required.

Boinc will try to use all the resources available so on a quad core set to 75% CPU use, that would leave two cores to be used by other, lower priority projects.

Copy the same file into the Rosetta, Universe and WCG project directories and you'll have one task of each project running simultaneously regardless of the priority settings.

You can specify a larger number of total cores than available, it's only a per project setting. So setting Rosetta, Universe and WCG all to two on a quad core will allow four tasks to run but no more than two from each project. However you may still get two from Universe and two from WCG so still no Rosetta.

The drawbacks are that if a project runs out of work then the remaining one(s) can't take up the slack as they're limited in the maximum amount of work they can do and if you disable one project later then you have to change the allocations or add another project to use the newly freed cores.

Mark

Re: Scheduling priority in Manager.

Posted: Mon Sep 09, 2019 1:04 pm
by UBT - Timbo
Hi both

Another option is setting Resource Share on any specific projects to "0" (zero).

This will then allow said projects to download ONE task per available CPU, *IF* any other project runs out of work.

So, you could set Rosetta at 100%, and it will run using as many CPUs as you allow, and if Rosetta runs dry, you can then run other projects, until Rosetta has more work available, at which point it will become the priority project.

As far as how actual Priority system works, it gets more complicated (as Mark inferred) if you are running multiple projects and BOINC Manager then has to work out all the permutations of which project to download tasks from.

One way around this might be to simply remove any projects that you don't want to receive any work from, so you have maybe 2 or 3 projects in BM. (The ones you remove can always be added at a later stage so nothing is lost, but maybe BM has a easier job ?).

regards
Tim

Re: Scheduling priority in Manager.

Posted: Mon Sep 09, 2019 2:09 pm
by Woodles
Hi Tim,

Good call on the resource share of '0', it's always worth having a backup project set.

The drawback to removing projects is when you add them in again, Boinc has to download the executables for each application for that project. In most cases this is only a meg or so but in at least one project (can't remember which one, LHC with its VMs?) it's several gigabytes. Easier to just set them to no-new-work unless you really need to free up the disc space.

Mark

Re: Scheduling priority in Manager.

Posted: Mon Sep 09, 2019 2:50 pm
by UBT - Timbo
Hi Mark

I'm not sure which project takes up Gb of just the exe & support files...though I know that some of the work units are pretty big...Rosetta is one.

On one of my PCs I have a lot of projects added and looking at "BOINC Manager > Disk" shows the following "gobblers" of HDD space:

Citizen Grid: 229 Mb
LHC: 237 Mb
MindModelling: 199 Mb
TN-Grid: 524 Mb
WCG: 275 Mb

(Of these, WCG includes some work units so the exe and support files may take up less space than that shown above).

OTOH, downloading a fresh set of executables ensures you have the latest versions and most people can download a couple of Gb of data, via broadband without too much of an issue (esp once the rest of the family has gone to bed and are not using Netflix !!).

regards
Tim

Re: Scheduling priority in Manager.

Posted: Tue Sep 10, 2019 12:00 am
by Jeffers
I have a total of 13 projects on my list currently, more than half are currently suspended.
Rosetta is one of my personal favourites and I'd like to do more there.
It's just a little frustrating that it's not getting more work. When I do a manual update it downloads another 8 tasks every time and that's it....
I don't want to have to intervene continuously to crunch my preferred projects, but I don't see any other option.
I don't really want to delete the projects that I don't currently want to run....

Re: Scheduling priority in Manager.

Posted: Tue Sep 10, 2019 10:21 am
by Woodles
Hi Jeff,

No need to delete any projects, leave them set to no new work and / or suspended.

A third option would be to run two instances of Boinc and split computing resources between them - viewtopic.php?f=93&t=6234

You could have your main instance as it is now but have a second one set with Rosetta as it's only project. Then it should have no scheduling conflicts and always be running Rosetta.

Set the main instance to use say 75% of the cores and the second to use 25%.

You can of course, have as many instances as you have cores if you want to really micromanage it :D

A fourth option is to leave things as they are but have the manual updates done automatically - viewtopic.php?f=93&t=6398

Set the project to Rosetta and the repeat time (set to 2 + 28 seconds in that post) to the normal run time of the Rosetta tasks or shorter.

Alternatively, leave things as they are and in a month or two, the resource share should be working about right.

Mark

Re: Scheduling priority in Manager.

Posted: Tue Sep 10, 2019 1:26 pm
by Jeffers
I'm not going to mess about much more, although I have set another of the CPU using projects (Universe) to no new tasks as it seems to be getting the lions share at the moment. It's already got more credits and a higher RAC than Rosetta so I don't how the manager thinks that is balancing things up.....