-
Notifications
You must be signed in to change notification settings - Fork 515
Handling completed jobs
David Anderson edited this page Mar 20, 2026
·
6 revisions
In BOINC lingo, a 'workunit' is a job. A job can have multiple copies, or 'instances'. A 'result' is an instance of a job.
When a job instance is dispatched to a BOINC client (i.e. a volunteer computer), there are various possible outcomes:
- The client processes the job correctly and uploads the output files.
- The client computes the result incorrectly (e.g. due to a hardware error).
- The application crashes.
- The application exceeds resource limits (memory, disk, CPU time) and is aborted by the client.
- The client fails to download or upload files.
- A deadline passes and the result 'times out'. This can happen because because the computer is turned off a lot, or stops running BOINC completely.
BOINC has mechanisms that deal with these situations:
- If an instance errors out or times out, BOINC automatically creates new instances (up to a limit).
- Erroneous results can be detected in various ways, for example by 'replication' (running instances on different hosts and seeing if they agree; see below). For a given job, a 'canonical instance' is selected as the correct output. A job may be flagged as an error, in which case there is no canonical result.
Once a canonical instance has been selected, its output files are processed, possibly with application-specific logic. This is called assimilation.
Jobs have parameters related to the above mechanisms:
-
min_quorum: When replication is used, the minimum number of agreeing results; normally 2. -
target_nresults: This many instances are created initially; normally at leastmin_quorum. -
max_error_results: If this many instances fail (e.g. crash) the workunit is flagged as an error. -
max_total_resultsIf this many instances have been completed without finding a canonical instance, the workunit is flagged as an error. -
max_success_resultsIf this many instances have been successfully completed without finding a canonical instance, the workunit is flagged as an error.
These parameters are specified as part of job submission. They can be specified in the app's XML 'input template'.