Workunits and results are described by template files, with placeholders for their input and output files.
A WU template file has the form
",htmlspecialchars("The components are: "; list_start(); list_item(htmlspecialchars("[ ... ] 0 [, other attributes] "), " [ ... ] [ 0 NAME -flags xyz ] [x ] [x ] [x ] [ x ] [ x ] [x ] [x ] [x ] [x ]
A result template file has the form
", htmlspecialchars("32768 "), " result.sah
The result file template is macro-substituted as follows:
The utility program is
Command-line interface
create_work
-appname name // application name
-wu_name name // workunit name
-wu_template filename // WU template filename
// relative to project root
-result_template filename // result template filename
// relative to project root
// The following are normally supplied in the WU template:
[ -rsc_fpops_est x ]
[ -rsc_fpops_bound x ]
[ -rsc_memory_bound x ]
[ -rsc_disk_bound x ]
[ -delay_bound x ]
[ -min_quorum x ]
[ -target_nresults x ]
[ -max_error_results x ]
[ -max_total_results x ]
[ -max_success_results x ]
infile_1 ... infile_m // input files
The workunit parameters are documented here.
The program must be run in the project root directory;
it looks for config.xml there, and uses its contents.
The C++ library (backend_lib.C,h) provides the functions:
int read_key_file(char* path, R_RSA_PRIVATE_KEY& key); int create_work( DB_WORKUNIT&, const char* wu_template, // contents, not path const char* result_template_filename, // relative to project root const char* result_template_filepath, // absolute, // or relative to current dir const char* infile_dir, // where input files are const char** infiles, // array of input file names int ninfiles R_RSA_PRIVATE_KEY& key, // upload authentication key const char* upload_url, const char* download_url );
read_key_file() reads a private key from a file. Use this to read the file upload authentication key.
create_work() creates a workunit and one or more results. The arguments are similar to those of the utility program; some of the information is passed in the WORKUNIT structure, namely the following fields:
name appid batch rsc_fpops rsc_iops rsc_memory rsc_disk delay_boundAll other fields should be zeroed.
The daemon program
make_work -wu_name name -cushion Ncan be used to create an endless supply of work. It will create copies of the given work unit as needed to maintain a supply of at least N unsent results. "; page_tail(); ?>