2004-06-09 19:09:16 +00:00
|
|
|
<?php
|
2003-12-24 00:50:51 +00:00
|
|
|
require_once("docutil.php");
|
|
|
|
page_head("Validation");
|
|
|
|
echo "
|
2004-02-09 05:11:05 +00:00
|
|
|
<p>
|
2006-06-09 20:47:09 +00:00
|
|
|
In BOINC, the process of <b>validation</b> does two things:
|
2004-09-10 00:41:48 +00:00
|
|
|
<ul>
|
2006-06-09 20:47:09 +00:00
|
|
|
<li> it compares redundant results
|
|
|
|
and decides which ones are to be considered correct;
|
|
|
|
<li> it decides how much credit to grant to each correct result.
|
|
|
|
</ul>
|
2004-12-20 20:47:25 +00:00
|
|
|
<p>
|
2006-06-09 20:47:09 +00:00
|
|
|
A <b>validator</b> is a daemon program.
|
|
|
|
You must supply a validator for each application in your project,
|
|
|
|
and include it in the <daemons> section of your
|
|
|
|
<a href=configuration.php>project configuration file</a>.
|
2004-09-10 00:41:48 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
<p>
|
2006-06-09 20:47:09 +00:00
|
|
|
Depending on various factors,
|
|
|
|
you may be able to use a standard validator that comes with BOINC,
|
|
|
|
or you may have to develop a custom validator.
|
2004-09-10 00:41:48 +00:00
|
|
|
<ul>
|
|
|
|
<li>
|
2006-06-09 20:47:09 +00:00
|
|
|
If your application generates exactly matching results
|
|
|
|
(either because it does no floating-point arithmetic, or because you use
|
|
|
|
<a href=homogeneous_redundancy.php>homogeneous redundancy</a>)
|
|
|
|
then you can the 'sample bitwise validator' (see below).
|
2004-09-10 00:41:48 +00:00
|
|
|
<li>
|
2006-06-09 20:47:09 +00:00
|
|
|
If you are using BOINC for 'desktop grid' computing
|
|
|
|
(i.e. you trust all the participating hosts)
|
|
|
|
then you can use the 'sample trivial validator' (see below).
|
2004-09-10 00:41:48 +00:00
|
|
|
<li>
|
2006-06-09 20:47:09 +00:00
|
|
|
Otherwise, you'll need to develop a custom validator for your application.
|
|
|
|
BOINC supplies a <a href=validate_high.php>high-level validator framework</a>
|
|
|
|
in which you plug in three short application-specific functions.
|
|
|
|
This is sufficient for more projects.
|
|
|
|
If you need more control over the validation process,
|
|
|
|
you can use BOINC's <a href=validate_low.php>low-level validator framework</a>.
|
2004-09-10 00:41:48 +00:00
|
|
|
</ul>
|
2004-02-09 05:11:05 +00:00
|
|
|
|
2004-11-29 22:26:34 +00:00
|
|
|
<p>
|
2006-06-09 20:47:09 +00:00
|
|
|
Two standard validators are supplied:
|
2004-03-17 01:26:44 +00:00
|
|
|
<ul>
|
|
|
|
<li>
|
2006-06-09 20:47:09 +00:00
|
|
|
The <b>sample_bitwise_validator</b> requires a strict majority,
|
2004-03-17 01:26:44 +00:00
|
|
|
and regards results as equivalent only if they agree byte for byte.
|
|
|
|
<li>
|
2006-06-09 20:47:09 +00:00
|
|
|
The <b>sample_trivial_validator</b>
|
2004-03-17 01:26:44 +00:00
|
|
|
regards any two results as equivalent if their CPU time
|
|
|
|
exceeds a given minimum.
|
|
|
|
</ul>
|
2005-01-03 11:09:07 +00:00
|
|
|
<p>
|
2004-03-17 01:26:44 +00:00
|
|
|
|
2005-02-23 06:19:20 +00:00
|
|
|
<h3>Command-line arguments</h3>
|
2006-06-09 20:47:09 +00:00
|
|
|
A validator (either standard or custom) has the following command-line arguments:
|
2003-12-24 00:50:51 +00:00
|
|
|
";
|
2005-02-23 06:19:20 +00:00
|
|
|
list_start();
|
|
|
|
list_item("-app appname", "Name of the application");
|
|
|
|
list_item("[ -one_pass_N_WU N ]", "Validate at most N WUs, then exit");
|
|
|
|
list_item("[ -one_pass ]", "Make one pass through WU table, then exit");
|
|
|
|
list_item("[ -mod n i ]",
|
|
|
|
"Process only WUs with (id mod n) == i.
|
|
|
|
This option lets you run multiple instances of the validator
|
|
|
|
for increased performance."
|
|
|
|
);
|
|
|
|
list_end();
|
2003-12-24 00:50:51 +00:00
|
|
|
page_tail();
|
|
|
|
?>
|