Starting Tasks in Order By Date Deadline Due.


log in

Advanced search

Questions and Answers : Preferences : Starting Tasks in Order By Date Deadline Due.

Author Message
GCC
Send message
Joined: 13 Nov 00
Posts: 1
Credit: 42,319
RAC: 0
United Kingdom
Message 1120282 - Posted: 23 Jun 2011, 5:01:41 UTC

Hi:

I have just resumed seti@home after an absence of almost seven years. I like the newer BOINIC system that gives the user easier control – despite the constant hiccups with the servers being down etc.

I do have one question concerning tasks. I have noticed that when I have a bunch of tasks to complete that there does not seem to be any order in which they are started.

To give an example: One of my first tasks on May 14 was finished after one day – but, I am still waiting for my wingman to finish. This is work unit number 28se10ab.21014.8428.12.10.1. After checking my wingman’s tasks I can see that they have in progress 900 tasks. They are regularly submitting results and receiving tasks on a daily basis. I don’t have any issue with my wingman concerning how they decide to run seti@home. It’s more the way the software works.

Would it not make more sense for the program to start the tasks in order of the deadline due? That way, users would also get their results confirmed much quicker. Would it be too difficult to write this into a newer version as the default? At the least – you could give the user the choice “Start tasks in order of deadline due.”

I have looked through the help sections and blogs but cannot find anything pertaining to this issue. If I have missed it please direct me there.

Thanks
Bob C.

Profile Gundolf Jahn
Send message
Joined: 19 Sep 00
Posts: 3184
Credit: 354,909
RAC: 21
Germany
Message 1120304 - Posted: 23 Jun 2011, 7:13:11 UTC - in response to Message 1120282.

...despite the constant hiccups with the servers being down etc.

Which have nothing to do with the BOINC software per se ;-)

I have noticed that when I have a bunch of tasks to complete that there does not seem to be any order in which they are started.

That only seems so :-)
In reality, the tasks are started in a First In First Out (FIFO) order per project.

Would it not make more sense for the program to start the tasks in order of the deadline due?

No, because then tasks from projects with longer deadlines would starve.

That way, users would also get their results confirmed much quicker.

Not true. The longer running tasks also have to be verified at some point in time.

At the least – you could give the user the choice “Start tasks in order of deadline due.”

See activate new WU with earlier due date than current WU

I have looked through the help sections and blogs but cannot find anything pertaining to this issue. If I have missed it please direct me there.

Did you use the advanced forum search?

Here some of those I've found using "dead line first":
How does the system schedule work.
Probably been asked before, but....
client priorities

Gruß,
Gundolf
____________
Computer sind nicht alles im Leben. (Kleiner Scherz)

SETI@home classic workunits 3,758
SETI@home classic CPU time 66,520 hours

Profile Ageless
Avatar
Send message
Joined: 9 Jun 99
Posts: 12127
Credit: 2,519,625
RAC: 353
Netherlands
Message 1120379 - Posted: 23 Jun 2011, 12:44:31 UTC

The thing people seem to overlook is that BOINC isn't just Seti. BOINC allows you to do science for a lot of other projects, each with their own deadlines. There's a project with 3 day deadlines. There's one with a year long deadlines.

If it were to go by deadline only and you'd attach to the 3 days deadline project, you'd only be doing their work. Not Seti, not anything else. The deadlines on those projects would just come and go.

So a BOINC running work based on deadline only would only be able to attach to one project, or only projects with a similar enough deadline. And then those projects may only release work with that one deadline, not something earlier or later...
____________
Jord

Loving awareness is free.

John McLeod VII
Volunteer developer
Volunteer tester
Avatar
Send message
Joined: 15 Jul 99
Posts: 23702
Credit: 493,107
RAC: 137
United States
Message 1133852 - Posted: 30 Jul 2011, 3:39:53 UTC - in response to Message 1120379.

The thing people seem to overlook is that BOINC isn't just Seti. BOINC allows you to do science for a lot of other projects, each with their own deadlines. There's a project with 3 day deadlines. There's one with a year long deadlines.

If it were to go by deadline only and you'd attach to the 3 days deadline project, you'd only be doing their work. Not Seti, not anything else. The deadlines on those projects would just come and go.

So a BOINC running work based on deadline only would only be able to attach to one project, or only projects with a similar enough deadline. And then those projects may only release work with that one deadline, not something earlier or later...

And the project with year long deadlines takes way longer than 3 days. So BOINC switches back and forth between the tasks on hand. If the BOINC client determines that there is some danger of a task returning late, that task gets the CPU until either the task is complete or it is determined that it is not in danger of being late.
____________


BOINC WIKI

Profile Thomas C. Hann
Send message
Joined: 11 Jun 99
Posts: 2
Credit: 17,867,010
RAC: 10,147
United States
Message 1156868 - Posted: 28 Sep 2011, 19:10:30 UTC

Sorry this is my first try at making a comment. Need to weigh in on
"Starting Tasks in Order By Date Deadline Due."
Programing of the 'BOINC Manager' does allow for a user's Preferences for the switching of applications for a specified amount of time. It would seem to me that BOINC's Manager's programing would know what project it is crunching at any given time. Then what ever application is running then use that project's deadline times. Start tasks in order of deadline due by application. The "First In First Out" sometimes is in conflict with the column "Deadline" even in the same application. Sometimes I get a work unit with a Deadline date then in a day or two get another work unit same application with a deadline date before the previous work unit deadline date. It wants to use the (First In First Out.) So what is it; Deadline; Expected Completion Date; Drop Dead Date; Hoped For Date. Maybe just give it a label of "Created date" or address this issue with adequate programing of the BOINC Manager. Maybe use just a little A.I. if that is not asking for too much of someone's time. Maybe I am just ignorant of this whole concept and behind in the language of Software & Internet lingo but the descriptions and labels to me seem to be inadequate and not a lot of explanations and a labyrinth of forums to find out what is what. I may even be in the wrong forum here. Tom
____________

John McLeod VII
Volunteer developer
Volunteer tester
Avatar
Send message
Joined: 15 Jul 99
Posts: 23702
Credit: 493,107
RAC: 137
United States
Message 1156949 - Posted: 29 Sep 2011, 3:28:01 UTC

The BOINC CPU scheduler can be in either of two modes at any given time for each processor independently (OK, this slide over multi CPU tasks a bit, it is covered in the code though).

At each task start or task switch opportunity the CPU scheduler estimates the completion times of all tasks in the system, and compares that to 90% of the time from now to the computation completion deadline (which is earlier than the report deadline that shows in the UI - more on that in a bit). If the estimated completion time is >= 90% of the computation deadline, then that task is marked as requiring high priority.

For each high priority task in deadline order from earliest to latest, assign the task to a CPU (or GPU as the case may be) until either the supply of CPUs (or GPUs) is exhausted or all of the high priority tasks are assigned to a CPU (or GPU).

For the remaining CPUs and GPUs, assign tasks in Round Robin order by project and FIFO within each project.

The two different operational modes do several things:

1) Meet all deadlines if it is at all possible to do so.
2) Ensures that long running tasks with distant deadlines are not starved.
3) Cycles through the different projects in what is hopefully an interesting order.

The computation deadline is the report deadline - (task switch interval + Connect Every X days + possibly 1 day (version dependent, removed in later versions)). This ensures that the task should be completed early enough to be updated and reported during a connection that falls between the completion of the task and the report date.

The estimation takes into account factors such as fraction of the time BOINC gets to do computation, and resource shares of all projects with tasks on the computer among other things. Which leads to the non-obvious outcome that low resource projects that actually get to download work typically get a lot of high priority CPU time to complete by deadline.


____________


BOINC WIKI

Profile perryjay
Volunteer tester
Avatar
Send message
Joined: 20 Aug 02
Posts: 3377
Credit: 13,661,385
RAC: 12,126
United States
Message 1157098 - Posted: 29 Sep 2011, 15:22:17 UTC - in response to Message 1156868.

Hi Tom,

Programing of the 'BOINC Manager' does allow for a user's Preferences for the switching of applications for a specified amount of time. It would seem to me that BOINC's Manager's programing would know what project it is crunching at any given time. Then what ever application is running then use that project's deadline times


I just wanted to point out that many times on dual or Quad core machines there can be more than one project running at a time. I've had SETI running on one of my cores while Einstein was running on the other. The Manager may not look it at times but it does a very good job of making sure everybody gets their work done on time.
____________


PROUD MEMBER OF Team Starfire World BOINC

John McLeod VII
Volunteer developer
Volunteer tester
Avatar
Send message
Joined: 15 Jul 99
Posts: 23702
Credit: 493,107
RAC: 137
United States
Message 1157270 - Posted: 29 Sep 2011, 22:15:43 UTC - in response to Message 1157098.

Hi Tom,

Programing of the 'BOINC Manager' does allow for a user's Preferences for the switching of applications for a specified amount of time. It would seem to me that BOINC's Manager's programing would know what project it is crunching at any given time. Then what ever application is running then use that project's deadline times


I just wanted to point out that many times on dual or Quad core machines there can be more than one project running at a time. I've had SETI running on one of my cores while Einstein was running on the other. The Manager may not look it at times but it does a very good job of making sure everybody gets their work done on time.

It isn't the Manager, the UI, it is the Daemon, the back end controller, and yes, it does look at times - very carefully.

The combination of the two allows all tasks to be completed on time. For example, a project can have 2 classes of work. First is one that takes an hour and has a deadline of a week. The second (from the same project) takes 2 weeks and has a deadline of 2 months. Now suppose you have a dual CPU system and have downloaded 1 of the long tasks, and keep getting a long series of the short tasks. If everything runs strictly in EDF, the short tasks will run until it is a week till the deadline of the long task. At that time the long task will start, and it cannot complete until a week after deadline. The long task may be completely useless to the project at that point and generate no credit.

If the normal is to run in FIFO order until some task in in danger on not completing until after the deadline, then the long task will get to start sometime during the first day or two (depending on download order and length of queue on the client). It should then run till completion if the queue is less than a week.

The other point is that the server hands out tasks to different people in the same order to both sets of people, thus eliminating the argument that EDF will somehow cut the wait for credit. This does lead to unfortunate circumstances on occasion where one good computer is paired with one bad computer for an entire set of WUs. This can lead the good computer to have a long wait for validation as a second round of tasks is sent out for the WU. A Work Unit is one or more identical tasks whose results are compared against each other to determine validity.
____________


BOINC WIKI

Questions and Answers : Preferences : Starting Tasks in Order By Date Deadline Due.

Copyright © 2014 University of California