Version 7 (modified by 17 years ago) (diff) | ,
---|
Single job submission
BOINC is designed to handle streams of millions of jobs. It takes some work to set up a stream: you need to fiddle around with apps and app versions, WU and result templates, validators and assimilators, etc.
However, the single job submission system lets you run a job remotely without any of this hassle. To do this, configure your BOINC server to handle single jobs (see below). Then type
boinc_submit [boinc-options] program [program-options]
The boinc-options are:
- --infile name
- specifies an input file.
- --stdin name
- direct the given file to the program's stdin.
- --outfile name
- specifies an output file.
- --stdout name
- direct the program's stdout to the given file.
- --platform
- the program is to be run on the given BoincPlatforms platform? (default: i686-pc-linux-gnu).
You can include as many --infile and --outfile options as you want, and at most one of others.
The program-options will be passed as command-line arguments to the program when it runs on the remote machine.
If the program requires any non-standard libraries, link these statically. Otherwise it will fail on machines that lack these libraries.
You can run boinc_submit from any host that NSF-mounts your project directory and can access the MySQL database.
When the job is completed successfully, the output files will appear in the job directory.
Configuring BOINC for single jobs
Download the latest server code and upgrade your project. Make sure you have boinc_samples/ installed (the single-job mechanism uses the "wrapper" program from boinc_samples/wrapper). Then cd to your project's home directory and type
html/ops/single_job_setup path-to-boinc-samples
and follow the resulting instructions.
You should periodically update your boinc/ and boinc_samples/ source code, to get bug fixes for "wrapper". After you do this, re-run the single_job_setup script as above.
Notes
The single job submission system is a work in progress. Various features haven't been implemented (let us know if you need them).
- Platforms other than Linux/Intel32
- Redundancy greater than 1
- Control over FLOPS, disk, and memory limits.
- Code-signing of the program file