The back end of a BOINC project consists of a number of components that together are responsible for generating work and absorbing the results. Some of these components are supplied by BOINC; other parts are project- or application-specific:
Component | BOINC-supplied part | project-supplied part |
---|---|---|
Work generator: generates work units and their input files, and generates one or more results per work unit. | Functions and programs that handle the details of creating workunit and result database records. | Programs or scripts that generate input files, install them on data servers, and call the BOINC functions. |
Result retry generator: generates additional results if some of those initially sent are lost. | A program, result_retry, that does the job. | Some parameters used by result_retry. |
Result validation and accounting: compare redundant results; select a canonical result representing the correct output, and a canonical credit granted to users and hosts that return the correct output. | A program, validate, that contains the basic logic for validation. | An application-specific function, linked with validate, that compares sets of redundant results. |
Result processing: parse output files of completed results, and take appropriate action (record results in a database, and/or generate more work) | Function for enumerating unprocessed results. | The rest. |
Garbage collector: delete input and output files when they are no longer needed. | A program, garbage_collect, that does the job. | None. |