In BOINC, the process of validation does two things:
- it compares redundant results
and decides which ones are to be considered correct;
- it decides how much credit to grant to each correct result.
A validator is a daemon program.
You must supply a validator for each application in your project,
and include it in the <daemons> section of your
project configuration file.
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.
-
If your application generates exactly matching results
(either because it does no floating-point arithmetic, or because you use
homogeneous redundancy)
then you can use the 'sample bitwise validator' (see below).
-
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).
-
Otherwise, you'll need to develop a custom validator for your application.
BOINC supplies a simple validator framework
in which you plug in three short application-specific functions.
This is sufficient for most projects.
If you need more control over the validation process,
you can use BOINC's advanced validator framework.
Two standard validators are supplied:
-
The sample_bitwise_validator requires a strict majority,
and regards results as equivalent only if they agree byte for byte.
-
The sample_trivial_validator
regards any two results as equivalent if their CPU time
exceeds a given minimum.
Command-line arguments
A validator (either standard or custom) has the following command-line arguments:
";
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();
page_tail();
?>