7 | | Depending on various factors, you may be able to use a standard validator that comes with BOINC, |
8 | | or you may have to develop a custom validator. |
| 7 | Validating a completed job has 2 parts: |
| 8 | * '''Syntax check''': verify that its output files are present on the server |
| 9 | and have the correct format. |
| 10 | * '''Replication check''': if the job is [JobReplication replicated], compare its replicas. |
| 11 | If a strict majority are found to be "equivalent", |
| 12 | those replicas are considered valid and the rest are marked as invalid. |
10 | | * If your application generates exactly matching results |
11 | | (either because it does no floating-point arithmetic, |
12 | | or because you use [HomogeneousRedundancy homogeneous redundancy]) |
13 | | then you can use the 'sample bitwise validator' (see below). |
14 | | * If you are using BOINC for 'desktop grid' computing |
15 | | (i.e. you trust all the participating hosts) then you can use the 'sample trivial validator' (see below). |
16 | | * Otherwise, you'll need to [ValidationSimple develop a custom validator] for your application. |
| 14 | Validators grant credit for valid results. |
| 15 | By default, this uses the mechanism described [CreditNew here]. |
| 16 | There are several [CreditAlt alternative ways of granting credit]. |
18 | | Several standard validators are supplied: |
| 18 | BOINC includes several "standard" validators: |
| 19 | '''sample_trivial_validator''':: |
| 20 | Marks a job as valid if its output files are present. |
| 21 | Use this if all hosts are trusted. |
| 22 | Not used with job replication. |
| 23 | '''sample_substr_validator''':: |
| 24 | Marks a job as valid if its stderr output includes a string |
| 25 | specified by the --stderr_substr command-line arg. |
| 26 | Not used with job replication. |
| 27 | '''sample_bitwise_validator''':: |
| 28 | Output files are equivalent if they agree byte for byte. |
| 29 | This can be used if your application generates exactly matching results |
| 30 | (either because it does no floating-point arithmetic, |
| 31 | or because you use [HomogeneousRedundancy homogeneous redundancy]). |
| 32 | If output files are gzip archives, use the '''--is_gzip''' command-line arg. |
| 33 | This will skip the gzip header when comparing files. |
20 | | * The '''sample_bitwise_validator''' requires a strict majority, and regards results as equivalent only if they agree byte for byte. |
21 | | * The '''sample_trivial_validator''' accepts all results as valid. |
22 | | * The '''sample_substr_validator''' accepts results whose stderr output includes a string specified by the --stderr_substr command-line arg. |
23 | | |
24 | | By default, a validator grants credit for valid results using a default mechanism (described [CreditNew here]). |
25 | | There are several [CreditAlt alternative ways of granting credit]. |
| 35 | For a given application, |
| 36 | you may want to define your own syntax check for output files, |
| 37 | or your own notion of "equivalence" |
| 38 | (for example, regarding floating-point numbers as equivalent if they agree within some tolerance). |
| 39 | In such cases, you can [ValidationSimple develop a custom validator] for the application. |