Changes between Version 10 and Version 11 of ValidationIntro
- Timestamp:
- Sep 14, 2011, 12:41:40 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ValidationIntro
v10 v11 2 2 3 3 In BOINC, a '''validator''' is a program that decides whether results are correct. 4 You must supply a validator for each application in your project, 5 and include it in the <daemons> section of your [ProjectConfigFile project configuration file]. 4 6 5 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 [ProjectConfigFile project configuration file]. 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. 6 9 7 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. 8 9 * If your application generates exactly matching results (either because it does no floating-point arithmetic, or because you use [HomogeneousRedundancy homogeneous redundancy]) then you can use the 'sample bitwise validator' (see below). 10 * 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). 11 * Otherwise, you'll need to develop a custom validator for your application. 12 BOINC supplies a [ValidationSimple validator framework] in which you plug in a few short application-specific functions. 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. 13 17 14 18 Two standard validators are supplied: 15 19 16 20 * The '''sample_bitwise_validator''' requires a strict majority, and regards results as equivalent only if they agree byte for byte. 17 * The '''sample_trivial_validator''' regards any two results as equivalent if their CPU time exceeds a given minimum. 21 * The '''sample_trivial_validator''' accepts all results as valid. 22 23 By default, a validator grants credit for valid results using the mechanism described [CreditNew here]. 24 You can change or disable this using command-line arguments. 18 25 19 26 === Command-line arguments === 27 20 28 A validator (either standard or custom) has the following command-line arguments: 21 29 … … 24 32 [ --one_pass ]:: Make one pass through WU table, then exit 25 33 [ --mod n i ]:: Process only WUs with (id mod n) == i. This option lets you run multiple instances of the validator for increased performance. 26 [ --max_claimed_credit X ]:: If a result claims more credit than this, mark it as invalid.27 34 [ --max_granted_credit X ]:: Grant no more than this amount of credit to a result. 28 [ --grant_claimed_credit ]:: If set, grant the claimed credit, regardless of what other results for this workunit claimed.29 This is useful for projects where different instances of the same job can do much different amounts of work.30 [ --credit_from_wu ]:: If set, credit is specified by the <credit> element in the WU.31 35 [ --update_credited_job ]:: For each valid result, create an entry in the credited_job database table. 32 36 This lets you keep track of which user contributed to each WU, even if you use [DbPurge db_purge]. 33 37 [ --no_credit ]:: Don't grant credit (use this if you grant credit via trickle messages). 38 [ --credit_from_runtime ]:: Grant credit proportional to (runtime * CPU FLOPS). 39 Use this if: 40 * the app has only single-threaded CPU versions, and 41 * the app's jobs do different amounts of computation on different hosts, 42 e.g. if they exit after a fixed amount of time.