Skip to content

Output file paradigms

David Anderson edited this page Mar 3, 2026 · 3 revisions

BOINC has three paradigms for handling output files.

A given app uses one of these paradigms; it's determined by what assimilator it uses. The file html/project/remote_apps.inc has a list of apps, saying which paradigm they use (should make this JSON).

In all cases, output files have physical names like

batch_2181__job_orb_id_499250_to_499299_0_r1933309611_0

(<wu_name>_<instance>_r<rand>_<seqno>; the rand prevents spoofing)

... and are uploaded to the upload hierarchy.

Stream paradigm

  • The assimilator leaves output files in the upload hierarchy
  • The transitioner sets FILE_DELETE_READY
  • The file_deleter deletes files

Batch-collect paradigm

So called because we collect the output files of a batch in a single place.

The assimilator (tools/sample_assimilate.py, sched/sample_assimilator.cpp) moves output files of the canonical instance to

<project>/results/<batchid>/

giving them names like

batch_2177__job_orb_id_449550_to_449599__file_output.json

(batch_<batchid>__<wu_name>__file_<log_name>)

... which are designed to be comprehensible to the user (no MD5 or random stuff)

  • the assimilator triggers transition of the WU
  • the transitioner sets WU and result FILE_DELETE_READY
  • the file deleter deletes input files and output files of extra instances; it doesn't find output files of the canonical result.

This is used in BUDA and (on BOINC Central) in the web-based Autodock interface.

Use get_output3.php (RPC or web) for downloading output files or tars.

Note: when downloading the (potentially huge) output of a batch, this uses tar and pipes the output directly into the output stream; the download starts immediately and no disk space is used.

Batch-static paradigm

Assimilators leave output files in the upload hierarchy. Use get_output2.php (RPC or web) for downloading output files or zips.

Clone this wiki locally