Changes between Version 10 and Version 11 of ValidationIntro


Ignore:
Timestamp:
Sep 14, 2011, 12:41:40 PM (13 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ValidationIntro

    v10 v11  
    22
    33In BOINC, a '''validator''' is a program that decides whether results are correct.
     4You must supply a validator for each application in your project,
     5and include it in the <daemons> section of your [ProjectConfigFile project configuration file].
    46
    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].
     7Depending on various factors, you may be able to use a standard validator that comes with BOINC,
     8or you may have to develop a custom validator.
    69
    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.
    1317
    1418Two standard validators are supplied:
    1519
    1620    * 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
     23By default, a validator grants credit for valid results using the mechanism described [CreditNew here].
     24You can change or disable this using command-line arguments.
    1825
    1926=== Command-line arguments ===
     27
    2028A validator (either standard or custom) has the following command-line arguments:
    2129
     
    2432 [ --one_pass ]::       Make one pass through WU table, then exit
    2533 [ --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.
    2734 [ --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.
    3135 [ --update_credited_job ]:: For each valid result, create an entry in the credited_job database table.
    3236  This lets you keep track of which user contributed to each WU, even if you use [DbPurge db_purge].
    3337 [ --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.