A BOINC project includes of a set of daemons (programs that run all the time). Each program should be listed as a daemon in the config.xml file. They all have the command-line options: "; list_start(); list_item("-d N", "Sets the verbosity level. 1 = critical messages only, 2 = normal messages, 3 = detailed debugging info." ); list_item("-one_pass", "Process all available items, then quit." ); list_item("-mod n i", "Handle only workunits for which mod(id, n) = i. This lets you run the daemon on arbitrarily many machines. (available for feeder, transitioner, validator)." ); list_end(); echo "
There is one work generator per application. It creates workunits and the corresponding input files. It is application-specific, and uses BOINC library functions for registering the workunits in the database.
During testing, you can create a single workunit using create_work, then use the daemon program make_work to copy this workunit as needed to maintain a given supply of work.
This program is supplied by BOINC and is application independent. It creates a shared-memory segment used to pass database records to CGI scheduler processes.
This program is supplied by BOINC and is application independent. It handles state transitions of workunits and results. It generates initial results for workunits, and generates more results when timeouts or errors occur.
There is one validator per application. It compares redundant results and selects a canonical result representing the correct output, and a canonical credit granted to users and hosts that return the correct output.