How does Boinc decide which WU it will run next?

Message boards : Number crunching : How does Boinc decide which WU it will run next?
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile AllenIN
Volunteer tester
Avatar

Send message
Joined: 5 Dec 00
Posts: 292
Credit: 58,297,005
RAC: 311
United States
Message 1808591 - Posted: 11 Aug 2016, 21:16:56 UTC
Last modified: 11 Aug 2016, 21:17:45 UTC

Just curious, I'm a bit anal I guess, but does anyone know why Boinc runs WU's in the order that it runs them? You would think that it would run them by due dates, but that is clearly not what it does.

Thanks
ID: 1808591 · Report as offensive
Profile Keith Myers Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 29 Apr 01
Posts: 13161
Credit: 1,160,866,277
RAC: 1,873
United States
Message 1808594 - Posted: 11 Aug 2016, 21:43:13 UTC - in response to Message 1808591.  

I believe BOINC has always run tasks in FIFO order. Only when a task runs into early estimated due dates caused by the platforms poor estimated completions times and APR rates, does BOINC subvert the FIFO order and invoke the High Priority mode for that task. Just the way it is, sorry.
Seti@Home classic workunits:20,676 CPU time:74,226 hours

A proud member of the OFA (Old Farts Association)
ID: 1808594 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14649
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1808595 - Posted: 11 Aug 2016, 21:43:14 UTC - in response to Message 1808591.  

Unless there's a danger of a missed deadline, it runs them in the order they were received from the server. First In, First Out. Simple as that.
ID: 1808595 · Report as offensive
Profile AllenIN
Volunteer tester
Avatar

Send message
Joined: 5 Dec 00
Posts: 292
Credit: 58,297,005
RAC: 311
United States
Message 1808994 - Posted: 14 Aug 2016, 2:14:39 UTC - in response to Message 1808595.  

Unless there's a danger of a missed deadline, it runs them in the order they were received from the server. First In, First Out. Simple as that.


If that is the case, and I'm sure it is since you are the one saying so, why does it sometimes stop an in progress WU and run another one that it has just received?
ID: 1808994 · Report as offensive
Grant (SSSF)
Volunteer tester

Send message
Joined: 19 Aug 99
Posts: 13720
Credit: 208,696,464
RAC: 304
Australia
Message 1808996 - Posted: 14 Aug 2016, 2:24:06 UTC - in response to Message 1808994.  
Last modified: 14 Aug 2016, 2:27:41 UTC

Unless there's a danger of a missed deadline, it runs them in the order they were received from the server. First In, First Out. Simple as that.


If that is the case, and I'm sure it is since you are the one saying so, why does it sometimes stop an in progress WU and run another one that it has just received?

The size of your cache, how often your system is set to check for work, the time it takes to process work, any other projects you might have & their settings, the time your system is able to process work all go in to determining if there is the chance of a missed deadline.
Grant
Darwin NT
ID: 1808996 · Report as offensive
Profile AllenIN
Volunteer tester
Avatar

Send message
Joined: 5 Dec 00
Posts: 292
Credit: 58,297,005
RAC: 311
United States
Message 1809448 - Posted: 15 Aug 2016, 19:55:20 UTC - in response to Message 1808996.  

Unless there's a danger of a missed deadline, it runs them in the order they were received from the server. First In, First Out. Simple as that.


If that is the case, and I'm sure it is since you are the one saying so, why does it sometimes stop an in progress WU and run another one that it has just received?

The size of your cache, how often your system is set to check for work, the time it takes to process work, any other projects you might have & their settings, the time your system is able to process work all go in to determining if there is the chance of a missed deadline.


Well in my case, I am only running Seti and I have no fancy settings, but it is not unusual for me to be running for instance, 3 cpu wu's that are due a month away and have some due in two weeks just setting there.

I thought that perhaps Bonic was choosing to run wu's that had already been completed by wingmen and would choose to run them before running first in first out.
ID: 1809448 · Report as offensive
AMDave
Volunteer tester

Send message
Joined: 9 Mar 01
Posts: 234
Credit: 11,671,730
RAC: 0
United States
Message 1809481 - Posted: 15 Aug 2016, 23:57:24 UTC - in response to Message 1809448.  
Last modified: 15 Aug 2016, 23:57:57 UTC

Well in my case, I am only running Seti and I have no fancy settings, but it is not unusual for me to be running for instance, 3 cpu wu's that are due a month away and have some due in two weeks just setting there.

For example, as of six hours ago, I have 6 Rosetta WUs with deadlines of 8/24 (1) & 8/25 (5) listed as "Waiting to run", while another 6 WUs with a deadline of 8/20 are running in their place.

You would need to view the BOINC code to determine the proximity to the Deadline at which BOINC applies priority to WUs.
ID: 1809481 · Report as offensive
rob smith Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer moderator
Volunteer tester

Send message
Joined: 7 Mar 03
Posts: 22158
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1809560 - Posted: 16 Aug 2016, 7:07:45 UTC

One unexpected thing I have noticed can have an impact on the run sequence: cache settings.
The first "days work" is fairly obvious, setting this to something sensible is all you need to do.
The second "additional day" is the one that appears to cause problems - setting this too high will cause all sorts of issues, it is far better to set this to a small figure (less than one) then the cache appears to allow BOINC to run tasks in an FIFO order, whereas large values (greater than 5) appears to cause problems with the way BOINC calculates which task to run next.
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1809560 · Report as offensive
Grant (SSSF)
Volunteer tester

Send message
Joined: 19 Aug 99
Posts: 13720
Credit: 208,696,464
RAC: 304
Australia
Message 1809567 - Posted: 16 Aug 2016, 8:10:07 UTC - in response to Message 1809448.  
Last modified: 16 Aug 2016, 8:10:26 UTC

Unless there's a danger of a missed deadline, it runs them in the order they were received from the server. First In, First Out. Simple as that.


If that is the case, and I'm sure it is since you are the one saying so, why does it sometimes stop an in progress WU and run another one that it has just received?

The size of your cache, how often your system is set to check for work, the time it takes to process work, any other projects you might have & their settings, the time your system is able to process work all go in to determining if there is the chance of a missed deadline.


Well in my case, I am only running Seti and I have no fancy settings, but it is not unusual for me to be running for instance, 3 cpu wu's that are due a month away and have some due in two weeks just setting there.

That's normal first in first out behaviour.
It's not going to start the most recently downloaded WUs with an earlier deadline before the ones that were downloaded first, unless the most recent ones are in danger of missing their deadlines.



I thought that perhaps Bonic was choosing to run wu's that had already been completed by wingmen and would choose to run them before running first in first out.

Nope.

You posted-
why does it sometimes stop an in progress WU and run another one that it has just received?

That is what happens if the Scheduler determines there is a risk of missing a deadline; start running a more recently downloaded WU in preference to WUs downloaded previously.

As Rob mentioned, if you set "Store up to an additional x days of work" to a large number (eg 3) and some recently downloaded WUs could run in to deadline issues; that setting basically translates to "Don't contact the server for x days". If you have that set to 3, and your cache is set to 5 days, and the deadline for the WU is less than 8 days away (3+5=8) then it will run that WU otherwise it would miss the deadline.
Grant
Darwin NT
ID: 1809567 · Report as offensive
Profile AllenIN
Volunteer tester
Avatar

Send message
Joined: 5 Dec 00
Posts: 292
Credit: 58,297,005
RAC: 311
United States
Message 1809784 - Posted: 17 Aug 2016, 1:36:42 UTC - in response to Message 1809567.  

Thank you all for trying to get my thick head to understand the system.

I guess what I really need to do, now that I have your understanding of the system, is to observe some of the dates and movement of WU's through my systems. Perhaps I have it set to store too many units, but this is not all my fault as I have been stuck with nothing to run on more than one occasion when I had my settings for far fewer wu's.

I will say that I am running some wu's for October currently, while I have wu's due in a week or so just setting there. To me, that seems odd, but as I said, I'll have to do a little studying to see what is really going down.

Thanks again for your kind help.....all of you.

Allen
ID: 1809784 · Report as offensive
Profile Stubbles
Volunteer tester
Avatar

Send message
Joined: 29 Nov 99
Posts: 358
Credit: 5,909,255
RAC: 0
Canada
Message 1809880 - Posted: 17 Aug 2016, 11:09:31 UTC - in response to Message 1809784.  

I will say that I am running some wu's for October currently, while I have wu's due in a week or so just setting there. To me, that seems odd, but as I said, I'll have to do a little studying to see what is really going down.

Hey AllenIN,
I looked at your rigs and they all have the max tasks allowed...except maybe for hostID: 6335328 (with 175 tasks when I looked)

That means that your rigs (except for maybe 1) will process all their tasks currently in both device queues (CPU & GPUs) within 10 days (assuming the past output is a good prediction of the near-future).

All this to say, if the earliest deadline is greater than 10 days, then all the tasks in your PCs queues will get processed before a deadline is reached whatever the processing order ends up being (FIFO, LIFO, random, etc) .

Hope that helps some more,
RobG :-)

PS: with BoincTasks, when I open up the grouping for one of the Device Queue (CPU or GPUs), it lists them in the order they'll get processed in (unless of course an imminent deadline were to cause a task to just jump to the head of the queue)
ID: 1809880 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14649
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1809882 - Posted: 17 Aug 2016, 11:14:15 UTC - in response to Message 1809880.  

BOINC Manager displays the tasks in FIFO order too - unless your finger slipped sometime and you applied a column sort order.

To recover from that (under Windows), you need to edit the Registry...
ID: 1809882 · Report as offensive

Message boards : Number crunching : How does Boinc decide which WU it will run next?


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.