It should be fairly easy to allow tasks to change their resource usage on
the fly at the client.

1)  If the task reduces usage and returns some resources early, it allows
the resource scheduler to schedule some other task to use that resource.
2)  If the task increases usage, the resource scheduler may either preempt
that task or some other task.

#1 would be useful for most of the multi threaded tasks as not all threads
complete at the same time.  In some cases, there appears to be a single
thread that lingers on for minutes to hours before relinquishing all of the
CPUs at the same time.  If they were relinquished one at a time, better CPU
usage could be achieved by scheduling single CPU tasks into the CPUs that
the multi CPU task no longer needs.

#2 is useful for tasks that have a long period of non-CPU usage followed by
an intense computational period at the end. (one project does this).

The basic idea is that the task dictates what it needs, and the resource
scheduler gets to decide when the task runs.

jm7

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to