mirror of https://github.com/BOINC/boinc.git
45 lines
1.5 KiB
HTML
45 lines
1.5 KiB
HTML
|
<title>Back end functions</title>
|
||
|
<h2>Back end functions</h2>
|
||
|
|
||
|
<p>
|
||
|
The general functions of a project back end include:
|
||
|
<ul>
|
||
|
<li> <b>Generate work</b>.
|
||
|
<p>
|
||
|
<li> <b>Reissue results</b>.
|
||
|
Hosts may fail to return results for various reasons;
|
||
|
such results are "lost".
|
||
|
Lost and erroneous results may prevent
|
||
|
finding a canonical result for a workunit.
|
||
|
The "result reissue" mechanism generates additional
|
||
|
results as needed to find a canonical result.
|
||
|
|
||
|
<p>
|
||
|
<li> <b>Select canonical results</b>.
|
||
|
Communication from the core client can easily be altered or forged.
|
||
|
Output files may be wrong.
|
||
|
This can result from tampering or hardware failures.
|
||
|
This problem can be addressed
|
||
|
by <b>redundant computing</b>
|
||
|
In this approach, each workunit is processed at least twice.
|
||
|
The project back end waits until a minimum number of results have been returned,then compares the results and decides which are considered correct.
|
||
|
The notion of equality of results,
|
||
|
and the policy for deciding which are correct, are project-specific.
|
||
|
<p>
|
||
|
|
||
|
<li> <b>Grant credit</b>.
|
||
|
Some users will attempt to get undeserved credit
|
||
|
by falsifying their CPU metrics or CPU times.
|
||
|
The back end
|
||
|
finds the minimum reported credit for the correct results of a given workunit,
|
||
|
and assigns this amount of credit to all the correct results.
|
||
|
This ensures that as long as a reasonable majority of participants
|
||
|
don't falsify credit, almost all credit accounting will be correct.
|
||
|
<p>
|
||
|
<li> <b>Assimilate results</b>.
|
||
|
<p>
|
||
|
<li> <b>Delete files</b>.
|
||
|
<p>
|
||
|
<li> <b>Detect "problem" workunits</b>.
|
||
|
</ul>
|