The back end of a BOINC project consists of a number of components that together are responsible for generating work and handling 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, work sequences, results, and the corresponding input files. | Functions and programs that handle the details of creating workunit, work sequence, 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 not completed, or completed erroneously. | 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. |
Work sequence relocater: detects work sequences whose hosts have failed, and relocates them to other hosts. | A program seq_relocate | Some parameters used by seq_relocate |
Work sequence validation and accounting: Similar to result validation, but for work sequences. | A program seq_validate | An application-specific function, linked with seq_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. Functions and programs that handle the details of creating workunit, work sequence, and result database records. | The rest. |
Garbage collector: delete input and output files when they are no longer needed. | A program, garbage_collect, that does the job. | None. |