Compute model: results
A result describes an instance of a computation,
either to be performed, in progress, or completed.
Results are stored in the result table of the BOINC DB.
The attributes of a result include:
- The name of the result (unique across all results in the project).
- The name of the associated workunit.
- An XML document listing the names of its output files; see below.
- An XML document giving the sizes and checksums of its output files
(this is filled in after the result is completed).
- The stderr output of the result.
- The host that computed the result.
- The times when the result was dispatched and received.
- The exit status of the application.
- The reported CPU time.
- Its state. Values include:
- Inactive (not ready to dispatch)
- Unsent (ready to dispatch, but not dispatched)
- In progress (dispatched, not done)
- Done successfully
- Timed out
- Done with error
The XML document listing the output files has the form:
<file_info>...</file_info>
[ ... ]
<result>
<name>foobar</name>
<wu_name>blah</wu_name>
<file_ref>...</file_ref>
[ ... ]
</result>
The components are:
- The <name> element is the result name.
- The <wu_name> element is the workunit name.
- Each <file_ref> element is an association
to an output file, described by a corresponding
<file_info> element.
The XML document describing the sizes and checksums
of the output files is just a list of
<file_info> elements, with the
nbytes and md5_cksum fields present.
The project back end must parse this field to
find the locations and checksums of output files.
Several results may be associated with a single workunit.
Results may be generated in either of two ways
(selected as part of the application):
- Advance generation of results.
One or more result records are stored in the database
when the workunit is produced.
The scheduling server dispatches each result to a single participant host.
When all result records have been dispatched,
participants hosts are "turned away".
- On-demand generation of results.
The application specifies a "result template",
which has place-holder tokens for the output filenames.
The scheduling server, in response to a host request,
generates a new result record and sends the result template.
The host generates unique output filenames,
and returns them along when it the computation is done.