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.
-
The time when the completed result should be reported to a
scheduling server. This is assigned by the project, and is used by
clients to prioritize operations, and to initiate scheduler RPCs. There
is no guarantee that the result will actually be reported by this time.
-
An XML document listing the names of its output files; see
below.
-
An XML document giving the sizes and checksums of its output
files (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>
<exit_status>blah</exit_status>
<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.