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. |
Assimilator: parse output files of completed results, and take appropriate action (record results in a database, and/or generate more work) | A main program that enumerates unassimilated workunits and updates the database. | A function that assimilates a workunit, either by processing its canonical result or handling an error return. |
File deleter: delete input and output files when they are no longer needed. | A program, file_deleter, that does the job. | None. |
Project that use work sequences will need two additional processes:
Component | BOINC-supplied part | project-supplied part |
---|---|---|
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. |