Work Unit Record
From Unofficial BOINC Wiki
Contents |
[edit] General
A Work Unit Record describes a computation to be performed. It is represented by a row in the "Work Unit Table".
The BOINC System provides a tool for creating Work Units as explained in "Generating Work".
A Work Unit Record has several attributes that are specified when the Work Unit is created:
| name | A text string, unique across all Work Units in the Project. | ||||||
| application |
Which <a href=app.php>Application</a> will perform the computation. A Work Unit is associated with an Application, not with a particular version or range of versions. If the input data format changes in a way that is incompatible with older versions, you must create a new application. This can often be avoided by using XML data format. |
||||||
| input files | A list of the input files: their names, and the names by which the application refers to them. | ||||||
| priority | Higher-priority work is dispatched first | ||||||
| batch | An integer; can be used to operate (cancel, change priority etc.) on groups of Work Units. | ||||||
| rsc_fpops_est | An estimate of the average number of floating-point operations required to complete the computation. This used to estimate how long the computation will take on a given host. | ||||||
| rsc_fpops_bound | A bound on the number of floating-point operations required to complete the computation.
|
||||||
| rsc_mem_bound | A bound on the Virtual Memory working set size. The Work Unit will only be sent to those Hosts with at least this much available RAM. If this bound is exceeded, the application will be aborted. | ||||||
| rsc_disk_bound |
A bound on the maximum disk space used by the application, including all input, temporary, and output files. The Work Unit will only be sent to hosts with at least this much available disk space. If this bound is exceeded, the application will be aborted. |
||||||
| delay_bound | An upper bound on the time (in seconds) between sending a Result to a client and receiving a reply.
The scheduler won't issue a result if the estimated completion time exceeds this. If the client doesn't respond within this interval, the server 'gives up' on the Result and generates a new result, to be assigned to another Participant's Computer. Set this to several times the average execution time of a Work Unit on a typical PC. If you set it too low, BOINC may not be able to send some Results, and the corresponding Work Unit will be flagged with an error. If you set it too high, there may a corresponding delay in getting Results back. |
||||||
| min_quorum | The minimum size of a Quorum of Results. Set this to two or more if you want Redundant Computing. | ||||||
| target_nresults | How many Results to create initially.
This must be at least min_quorum. It may be more, to reflect the ratio of Result loss, or to get a Quorum of Results more quickly. |
||||||
| max_error_results | If the number of client error results exceeds this, the Work Unit is declared to have an error; no further results are issued, and the Assimilator is triggered. This safeguards against Work Units that cause the application to crash. | ||||||
| max_total_results | If the total number of results for this Work Unit exceeds this, the Work Unit is declared to be in error. This safeguards against Work Units that are never reported (e.g. because they crash the BOINC Daemon). | ||||||
| max_success_results | If the number of success Results for this Work Unit exceeds this, and a consensus has not been reached, the Work Unit is declared to be in error. This safeguards against Work Units that produce nondeterministic results. | ||||||
[edit] Work Unit Error Mask
A Work Unit has a dynamic attribute called an Error Mask:
| error mask | A bit mask of various error conditions:
|
If any of these conditions holds, the BOINC System 'gives up' on the Work Unit and doesn't dispatch more results for it.
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

