= 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). Set the environment variable BOINC_PROJECT_DIR to the root directory of the project. '''cd''' into a directory containing a program and its input files. Then type {{{ ~/boinc/tools/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. == Monitoring jobs == The following options are available for monitoring jobs: {{{ boinc_submit --jobs }}} Show a list of jobs, both in progress and completed. {{{ boinc_submit --abort jobID }}} Abort the given job. == Configuring BOINC for single jobs == Download the latest server code and upgrade your project. The single-job mechanism uses the "wrapper" program from boinc/samples/wrapper. cd to your project's home directory and type {{{ html/ops/single_job_setup.php path-to-boinc-samples }}} and follow the resulting instructions. You should periodically update your boinc/ source code to get bug fixes for "wrapper". After you do this, re-run the '''single_job_setup.php''' 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 (could require homogeneous redundancy). * Control over job parameters such as deadline, FLOPS, disk, and memory limits. * Code-signing of the program file