Workunit prioritization...

Started by CFx, October 31, 2011, 09:20:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

CFx

I don't know if this is possible with the way BOINC is set up, but the things that would be cool to see:
1) Prioritize tasks based on deadline...preemptively increase priority on tasks that with a bit of a time buffer after examining deadline on other tasks.

For instance: Task #1 will take 2d to complete and has a deadline of 3d. Task #2 will take 3d to complete and has a deadline of 8d...so the client should have task #1 run non-stop until completion and then run task #2. An exception could be if task #1 will not complete on time for sure, but task #2 has a chance to complete if it runs immediately, then the client could just give up on task #1 and focus on task #2. This type of calculation can be fine-tuned by monitoring stats over a period of time to see how the computer BOINC is running on behaves on average.

2) If the queue is getting full such that it has close to the maximum amount of work it can possibly do on time, even after reporting work units, the client should throttle getting new tasks until the work queue has emptied out some. This also could be fine-tuned by past history.

3) Take into account total time in the calculation of maximum work possible by factoring in competition for GPU resources as well as work units that are set to use multiple CPUs (like some of the Milkyway units which gobble up all of them). Additionally, "high priority" work units should not always run if it is more efficient to run other work units that are due earlier. (Primegrid often locks processors so other work units won't run and might pass its deadline even though there may be plenty of time to run them afterwards.)

In any case, a lot of the projects don't play nice with each other, and I find myself having to babysit them manually which is lame. Just some ideas to make BoincTasks even better. If these suggestions don't make sense, let me know so I can clarify what I mean. I don't know if this is too complex to implement, but if it can be, it'd be good selling points to make it more attractive to others, I'll bet.

Pepo

All you write about (scheduling of tasks) are solely the BOINC client's duties. You might have a couple of fine ideas, but you should present them on the BOINC dev mailing list.
Peter

CFx

Ah, okay! Sorry for the question, but where might I find the BOINC dev list?

fred

Better yet, wait for the new BOINC V7, that has a new scheduler. But will probably introduce new bugs as well.

Pepo

Still, in the mean time, you can start getting familiar with it reading through its history: http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
You might then better understand, why does it behave like it behaves.
(Or help us wondering, why does it not behave as promised and advertised :D ;D :P)
Peter

CFx

Quote from: fred on November 01, 2011, 06:51:17 AM
Better yet, wait for the new BOINC V7, that has a new scheduler. But will probably introduce new bugs as well.
When does V7 come out?

Pepo

Quote from: CFx on November 04, 2011, 09:08:33 PM
Quote from: fred on November 01, 2011, 06:51:17 AM
Better yet, wait for the new BOINC V7, that has a new scheduler. But will probably introduce new bugs as well.
When does V7 come out?
It already is, sort of. The 6.13.0 came out in mid July. Today we have 6.13.10 available. In a couple of weeks/months some 6.13.1X (or 6.13.2X) will be released as 6.14.0 a.k.a V 7.0.1 and a an even broader audience will start testing it - this will probably be a stop for major changes and functionality additions.

I suppose around mid 2012 some 7.0.1X or 7.0.2X will be promoted to be the first candidate, and at the end of 2012 some of the final 7.0.3X candidates will be major-bugs-free - at the  same time some 7.1.1X with newer functionality will be already around, approx. in the same state as the 6.13.10 is now.
Peter

CFx

Quote from: Pepo on November 04, 2011, 11:19:51 PM
Quote from: CFx on November 04, 2011, 09:08:33 PM
Quote from: fred on November 01, 2011, 06:51:17 AM
Better yet, wait for the new BOINC V7, that has a new scheduler. But will probably introduce new bugs as well.
When does V7 come out?
It already is, sort of. The 6.13.0 came out in mid July. Today we have 6.13.10 available. In a couple of weeks/months some 6.13.1X (or 6.13.2X) will be released as 6.14.0 a.k.a V 7.0.1 and a an even broader audience will start testing it - this will probably be a stop for major changes and functionality additions.

I suppose around mid 2012 some 7.0.1X or 7.0.2X will be promoted to be the first candidate, and at the end of 2012 some of the final 7.0.3X candidates will be major-bugs-free - at the  same time some 7.1.1X with newer functionality will be already around, approx. in the same state as the 6.13.10 is now.
Cool, thanks for the info! And thanks for the response on the other board. If you didn't mention anything, I would've not seen your response here. Anyhow, started poking around that mailing list, but I wish the archives were a bit easier to peruse. :(

Pepo

Quote from: CFx on November 04, 2011, 11:44:59 PM
Anyhow, started poking around that mailing list, but I wish the archives were a bit easier to peruse. :(
I think that the BOINC_dev archives have also been accessible over gmane? No, apparently just BOINC_projects :( Indeed, there is also BOINC_dev, if it helps. At least for a few years ago.
Peter