Validation is the process of comparing redundant results and deciding which is to be considered correct. Because floating-point arithmetic varies between platforms, this decision is an application-specific.

A validator is a back-end program that does validation and credit-granting. You must supply a validator for each application in your project. BOINC supplies a framework program validator.C. To make a validator program, you must link validator.C with two application-specific functions:

",
htmlspecialchars("
int check_set(vector results, DB_WORKUNIT& wu, int& canonicalid, double& credit, bool& retry);
"),
"

",
htmlspecialchars("
int check_pair(RESULT& new_result, RESULT& canonical_result, bool& retry);
"),
"

Neither function should delete files or access the BOINC database.

A more detailed description is here.

Two example validators are supplied (each implements check_set() and check_pair()):

A placeholder, validator_placeholder.C is also provided. You can replace this file with your own code and 'make' will correctly build and link it.

Command-line arguments

A validator 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(); ?>