Task prioritization.

Message boards : Number crunching : Task prioritization.
Message board moderation

To post messages, you must log in.

AuthorMessage
ProfessorBarnhardt
Avatar

Send message
Joined: 19 Aug 03
Posts: 37
Credit: 2,285,937
RAC: 0
United States
Message 1774930 - Posted: 29 Mar 2016, 10:24:19 UTC
Last modified: 29 Mar 2016, 10:25:09 UTC

I'm currently using BOINC 7.6.6. I'm wondering if, in future versions, users will be able to prioritize tasks based on the deadline date ... or if the software will do that prioritization for users. You'd think that tasks closest to their deadline date would be run "before" others. But they don't - at least not on my machine. And I can't figure out what logic the software uses to select the order in which tasks are started.
ID: 1774930 · Report as offensive
Darth Beaver Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Avatar

Send message
Joined: 20 Aug 99
Posts: 6728
Credit: 21,443,075
RAC: 3
Australia
Message 1774932 - Posted: 29 Mar 2016, 10:26:57 UTC - in response to Message 1774930.  

Update your client it has been fixed
ID: 1774932 · 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: 22202
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1774946 - Posted: 29 Mar 2016, 11:38:32 UTC

When running normally BOINC runs tasks in the sequence they were received in.
If BOINC detects that a task isn't going to run before it's deadline then it is promoted up the list, and it may run at higher priority.
Most of the time BOINC does a good job, so doesn't need any intervention, although it has been known to do strange things if you have a large "extra days" setting, in which case it will sometimes go into a premature panic.
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1774946 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1774973 - Posted: 29 Mar 2016, 15:22:31 UTC - in response to Message 1774930.  

I'm currently using BOINC 7.6.6. I'm wondering if, in future versions, users will be able to prioritize tasks based on the deadline date ... or if the software will do that prioritization for users. You'd think that tasks closest to their deadline date would be run "before" others. But they don't - at least not on my machine. And I can't figure out what logic the software uses to select the order in which tasks are started.

If you want to force BOINC to run by deadline instead of FIFO then you can increase the value of Store at least X days of work in your settings.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1774973 · Report as offensive
ProfessorBarnhardt
Avatar

Send message
Joined: 19 Aug 03
Posts: 37
Credit: 2,285,937
RAC: 0
United States
Message 1775474 - Posted: 1 Apr 2016, 2:59:02 UTC - in response to Message 1774932.  

Darth Beaver wrote:

Update your client it has been fixed

Not in v7.6.22 (the latest version). I just updated to it. If anything, it's gotten worse - running tasks whose deadline is near the end of May when I have April tasks untouched.

HAL9000 wrote:

If you want to force BOINC to run by deadline instead of FIFO then you can increase the value of Store at least X days of work in your settings.

Well, I don't really want to "force" anything. It just seems a bit idiotic to run a task deadlined for 5/22 when a task deadlined for 4/20 sits untouched. Hopefully, in the future, the BOINC R&D people will address the issue.
ID: 1775474 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1775492 - Posted: 1 Apr 2016, 4:37:27 UTC - in response to Message 1775474.  
Last modified: 1 Apr 2016, 4:42:09 UTC

Darth Beaver wrote:

Update your client it has been fixed

Not in v7.6.22 (the latest version). I just updated to it. If anything, it's gotten worse - running tasks whose deadline is near the end of May when I have April tasks untouched.

HAL9000 wrote:

If you want to force BOINC to run by deadline instead of FIFO then you can increase the value of Store at least X days of work in your settings.

Well, I don't really want to "force" anything. It just seems a bit idiotic to run a task deadlined for 5/22 when a task deadlined for 4/20 sits untouched. Hopefully, in the future, the BOINC R&D people will address the issue.

Deadlines are determined by how much estimated processing is required to complete the task. Tasks that require less processing time are given a shorter deadline. They do not have a shorter deadline because they are more important in some way.

FIFO is pretty much a standard way to handle things. Not just BOINC but how much of the world actually functions. As I indicated you can tell BOINC to operate by deadline if you like. It does mean that if you have a batch of normal task & get more tasks that have a shorter deadline. Then BOINC would suspend the current tasks in progress and switch to the new tasks meditatively.
Another option you may consider is to view only actives task in BOINC Manager. Then you wouldn't have to see tasks not being processed in the order you prefer.

Given the speed that your computer completes tasks. I would expect tasks are finished long before running into deadlines.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1775492 · Report as offensive
ProfessorBarnhardt
Avatar

Send message
Joined: 19 Aug 03
Posts: 37
Credit: 2,285,937
RAC: 0
United States
Message 1775495 - Posted: 1 Apr 2016, 4:51:29 UTC - in response to Message 1775492.  
Last modified: 1 Apr 2016, 4:59:42 UTC

HAL9000 wrote:

Given the speed that your computer completes tasks. I would expect tasks are finished long before running into deadlines.

Perhaps. But less than an hour ago (while my computer was running a task with a 5/27 deadline), BOINC downloaded a task whose deadline was 4/21. So, it's pretty apparent the server doesn't even release tasks for work based on deadline dates ... much less prioritizes them so the tasks are completed in that order.

BTW, 4 of the 8 tasks running right now have a "shorter" completion time than the 4/21 task most recently downloaded. Yet all 4 tasks are May tasks.

Not just BOINC but how much of the world actually functions.

We must live in a dysfunctional world (grin). Oh, well ... their project, not mine. It just seems a peculiar way to do things.
ID: 1775495 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1775496 - Posted: 1 Apr 2016, 4:54:55 UTC - in response to Message 1775495.  

HAL9000 wrote:

Given the speed that your computer completes tasks. I would expect tasks are finished long before running into deadlines.

Perhaps. But less than an hour ago (while my computer was running a task with a 5/27 deadline), BOINC downloaded a task whose deadline was 4/21. So, it's pretty apparent the server doesn't even release tasks for work based on deadline dates ... much less prioritizes them so the tasks are completed in that order.

Oh, well ... their project, not mine. It just seems a peculiar way to do things.

As I just said in the previous post.

Deadlines are determined by how much estimated processing is required to complete the task.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1775496 · Report as offensive
Grant (SSSF)
Volunteer tester

Send message
Joined: 19 Aug 99
Posts: 13736
Credit: 208,696,464
RAC: 304
Australia
Message 1775520 - Posted: 1 Apr 2016, 6:56:39 UTC - in response to Message 1775495.  

So, it's pretty apparent the server doesn't even release tasks for work based on deadline dates ... much less prioritizes them so the tasks are completed in that order.

Because it's not necessary. All that is necessary is that work is returned before the deadline.
Why make things more difficult & complicated, when there is no need or benefit in doing so?


We must live in a dysfunctional world (grin). Oh, well ... their project, not mine. It just seems a peculiar way to do things.


?
Pretty much every job I've had, work has been done in the order in which it has been received. If there was something more urgent, then it would get done in preference to existing jobs. Once done, back to the existing jobs.
Doing some things before others- when it's not necessary- doesn't make much sense, it just results in more mucking about. Doing it that way would be dysfunctional to me.
Grant
Darwin NT
ID: 1775520 · Report as offensive
Profile Brent Norman Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester

Send message
Joined: 1 Dec 99
Posts: 2786
Credit: 685,657,289
RAC: 835
Canada
Message 1775536 - Posted: 1 Apr 2016, 11:31:20 UTC

The easy solution is to set a cache of 4 days + 0.01 days.

You will never run out of work, and tasks will be reported in a timely fashion.
ID: 1775536 · 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: 22202
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1775537 - Posted: 1 Apr 2016, 11:54:33 UTC

Supporting Brent - I run 5 days plus 0.01 on my servers, and just sit back and watch the credits roll in. They rarely do anything strange when running SETI and other "long" deadline work, but do sometimes get upset when a project dumps me a hundred tasks with a two or three day deadline, and each task will take several hours to run, and so I have more work in the caches than can be run in the time available.


One thing to consider. If running multiple projects is how much effort you want to put into each project - experience has shown that by setting you main project to 1000, then the next ones to a small number (say 10), the low priority ones to 1, and the those that are the real backstop projects to 0 gives a sensible share to the projects, whereas the more obvious 1000/500/100... tends to lead to lots of work running in "panic" mode, and some tasks timing out.
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1775537 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1775563 - Posted: 1 Apr 2016, 14:51:12 UTC - in response to Message 1775536.  
Last modified: 1 Apr 2016, 14:53:58 UTC

The easy solution is to set a cache of 4 days + 0.01 days.

You will never run out of work, and tasks will be reported in a timely fashion.

Their system runs tasks in about 4 hours & has 8 cores. So that's about 48 tasks a day. Their cache seems to hold steady around 25 tasks. So they don't really ever have more than 12 hours of work on hand at any given time.
That is without figuring in their GPU which runs tasks in about an hour.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1775563 · Report as offensive

Message boards : Number crunching : Task prioritization.


 
©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.