#414 closed Enhancement (invalid)
BOINC client should prioritize next work packet based on return time
Reported by: | woofie2 | Owned by: | davea |
---|---|---|---|
Priority: | Minor | Milestone: | Undetermined |
Component: | Client - Scheduler Policy | Version: | |
Keywords: | Cc: |
Description
This is just a suggestion-
Seeing how my computer uses the BOINC client, I think it would be most beneficial to prioritize the next started task by the return deadline, not the order received.
seeing my computer I could see where a slower computer would possibly miss deadlines by working on tasks that were not due before ones that have a closer deadline.
Change History (3)
comment:1 Changed 17 years ago by
Component: | Undetermined → Client - Daemon |
---|---|
Keywords: | run by earliest deadline added |
Owner: | set to davea |
comment:2 follow-up: 3 Changed 17 years ago by
Component: | Client - Daemon → Client - Scheduler Policy |
---|---|
Keywords: | run by earliest deadline removed |
Resolution: | → invalid |
Status: | new → closed |
BOINC is definitely not processing tasks in the order they are downloaded. It's doing much more complex decisions than just ordering by deadline. There is a dozen more factors it takes into account, like deadline, estimated time, resource share, long term debt, etc.
See Ageless's link for an explanation on how it currently works.
Ageless: you may want to update the link on your FAQ to point to the wiki instead of sched.php, even though currently there aren't differences in content.
comment:3 Changed 17 years ago by
Replying to Nicolas:
Ageless: you may want to update the link on your FAQ to point to the wiki instead of sched.php, even though currently there aren't differences in content.
Done.
And what if a task comes in that has a short deadline, a short estimated time to completion, but an actual long run time? Your BOINC would prioritize the tasks from that project constantly. At least until it would stop catching work from that project, to give the time spent on it back to the other project(s).
This is how it's done at this moment, for BOINC 5.8.x and above. It works quite well, if you just allow it to do its work and it will run tasks with a shorter deadline fast.