mirror of https://github.com/BOINC/boinc.git
76 lines
2.5 KiB
PHP
76 lines
2.5 KiB
PHP
<?php
|
|
require_once("docutil.php");
|
|
|
|
page_head("Work distribution");
|
|
|
|
echo "
|
|
A host asks a project for work by including a
|
|
".html_text("<work_req_seconds>X</work_req_seconds>")."
|
|
element in a scheduler RPC request message.
|
|
This asks the scheduler to return enough work to
|
|
keep all the host's processors busy for X seconds,
|
|
given the host's typical usage
|
|
(i.e. the fraction of time it's turned off
|
|
or BOINC is suspended, and the other processes that it executes).
|
|
|
|
<p>
|
|
BOINC's work distribution policy addresses the
|
|
(sometimes conflicting) goals of keeping hosts as busy as possible,
|
|
while minimizing the impact of
|
|
<ul>
|
|
<li> Hosts that repeatedly return results with error outcomes,
|
|
due to a host-specific problem.
|
|
<li> Malicious participants who attempt to obtain multiple
|
|
results of the same workunit,
|
|
in an attempt to obtain unearned credit
|
|
or have erroneous results accepted as correct.
|
|
</ul>
|
|
|
|
|
|
Work distribution is constrained by a number of rules:
|
|
<ul>
|
|
<li> A result is sent only if an application version
|
|
is available for the host's platform.
|
|
If the application's min_version field is nonzero,
|
|
the version number must at list this value.
|
|
<li>
|
|
A result is not sent if its disk or memory requirements
|
|
are not met by the host.
|
|
<li>
|
|
A result is not sent if the estimated latency
|
|
(based on the host's CPU speed and usage parameters)
|
|
exceeds the workunit's latency bound.
|
|
<li>
|
|
A result is not sent if the project has specified a
|
|
<a href=configuration.php>one result per user per workunit</a>
|
|
flag, and a result of the same workunit has already been
|
|
sent to a host belonging to the same user.
|
|
<li>
|
|
A result is not sent if the project has specified a
|
|
<a href=configuration.php>daily result quota</a> per host,
|
|
and the host has already been sent that many results.
|
|
<li>
|
|
A project can specify a limit on the
|
|
<a href=configuration.php>number of results sent per RPC</a>.
|
|
<li>
|
|
A result is not sent if
|
|
<a href=homogeneous_redundancy.php>homogeneous redundancy</a>
|
|
is enabled and another result of the same workunit
|
|
has been sent to a different type of host.
|
|
</ul>
|
|
|
|
In general, the BOINC scheduler responds to a work request
|
|
by enumerating unsent results from the database,
|
|
filtering them by the above criteria,
|
|
sending them to the host,
|
|
and continuing until requested duration X is reached.
|
|
|
|
<p>
|
|
For projects that have very large input files,
|
|
each of which is used by many workunit,
|
|
BOINC offers an alternative work distribution policy
|
|
called <a href=sched_locality.php>locality scheduling</a>.
|
|
";
|
|
page_tail();
|
|
?>
|