Changes between Version 2 and Version 3 of ValidationSummary


Ignore:
Timestamp:
Jun 10, 2008, 8:36:47 AM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ValidationSummary

    v2 v3  
    1212 * Some volunteers may return correct results but falsify the CPU time.
    1313
     14BOINC offers several mechanisms for validating results and credit.
     15However, there is no "one size fits all" solution.
     16The choice depends on your requirements,
     17and on the nature of your applications
     18(you can use different mechanisms for different applications).
     19
     20For each of your applications,
     21you must supply two server-side programs:
     22 * A "validator", which decides whether results are correct;
     23 * An "assimilator", which handles validated results
     24
     25PICTURE: different validator/assim for different apps
     26
     27BOINC provides examples of each of these,
     28as well as a framework that makes it easy to develop your own.
     29
     30== No replication ==
     31
     32The first option is to not use replication.
     33Each job gets done once.
     34The validator examines single results.
     35
     36This approach is useful if you have some way (application-specific)
     37of detecting wrong results with high probability.
     38
     39The credit question remains.
     40Some possibilities:
     41
     42 * Grant fixed credit (feasible if your jobs are uniform).
     43 * Put a cap on granted credit (this allows cheating).
     44 * If claimed credit exceeds a threshold, replicate the job.
     45
     46== Replication ==
     47
     48BOINC supports replication:
     49each job gets done on N different hosts,
     50and a result is considered valid if a strict majority of hosts return it.
     51
     52Replication also provides a good solution to credit cheating, even for non-uniform apps:
     53grant the average claimed credit, throwing out the low and high first
     54(if N=2, grant the minimum).
     55
     56One problem with replication is that there are discrepancies
     57in the way different computers do floating point math.
     58This makes it hard to determine when two results "agree";
     59two different results may be equally correct.
     60
     61There are several different ways of dealing with this problem.
     62
     63=== Eliminate discrepancies ===
     64
     65By selecting the right compiler, compiler options, and math libraries,
     66it may be possible to eliminate numerical discrepancies.
     67This lets you do bitwise comparison of results.
     68However, it is difficult and generally reduces the performance of your application.
     69
     70=== Fuzzy comparison ===
     71
     72If your application is numerically stable
     73(i.e., small discrepancies lead to small differences in the result)
     74you can write a "fuzzy comparison function" for the validator that
     75considers two results as equivalent if they agree within some tolerance.
     76
     77=== Homogeneous replication ===
    1478There are
    15                 purposes: correct results, correct credit
    16                 no redundancy
    17                         (still can validate)
    1879                        may bound credit
    1980                redundancy