Changes between Version 1 and Version 2 of SingleJobImpl


Ignore:
Timestamp:
Mar 5, 2008, 3:45:13 PM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SingleJobImpl

    v1 v2  
    33BOINC's [SingleJob single-job submission system]
    44is a streamlined way to run a single job remotely.
    5 It's implemented by two scripts:
     5It's implemented by:
    66
    7  * '''html/ops/single_job_setup''', which configures a project to handle single-job submission;
     7 * '''html/ops/single_job_setup''', a script which configures a project to handle single-job submission;
    88 * [SingleJob tools/boinc_submit], which submits a job.
     9 * single_job_assimilator, an assimilator for single jobs.
    910
    10 This mechanism is implemented as follows:
     11The mechanism is implemented as follows:
    1112
    12  
     13 * Single jobs for a given platform use the application '''single_job_PLATFORM'''.
     14 * App versions for this app run the [WrapperApp] wrapper] program.
     15
     16'''single_job_setup''' does the following:
     17
     18 * Check that the wrapper has been compiled (i.e. boinc_samples/wrapper/wrapper exists).
     19 * Add the application '''single_job_PLATFORM''' to the DB if needed.
     20 * Create a project/apps/single_job_PLATFORM directory if needed.
     21 * Scan through the subdirectories of this, looking for the highest version number.
     22 * If there are no subdirectories, or if the application in the highest-version subdirectory isn't current, create a new subdirectory and copy the wrapper app to it.
     23 * Print instructions for running update_versions if needed, and/or adding <daemon> entries to config file.
     24
     25NOTE: '''single_job_setup''' is hardwired with the '''i686-pc-linux-gnu''' platform
     26(i.e. Linux on Intel32).
     27If you want to use other platforms, edit the script.
     28
     29'''boinc_submit''' does the following:
     30
     31 * Check that the project has been configured to do single jobs for the given platform.
     32 * Create a WU record for the job.
     33 * Make a job.xml file for this job.  This has the physical name '''sj_WUID.xml''', where WUID is the ID of the workunit.
     34 * Make a "job directory file", sj_WUID, in the upload directory hierarchy.  This contains the directory from which boinc_submit was run, so that the assimilator can put output files there.
     35 * Create WU and result template files (sj_wu_template_WUID and sj_result_template_WUID).  The input files include the job.xml file and the program executable.  The executable is declared as sticky.  Its name (logical and physical) is '''program_PLATFORM_CKSUM''', where CKSUM is the first 8 characters of the file's MD5.
     36 * Copy input files and the executable to the download hierarchy.  The physical name of input files is '''name_WUID'''.
     37 * Invoke [WorkGeneration#creatework-tool create_work] to finish creating the job.  Pass a --wu_id flag to tell create_work not to create a new workunit.
     38
     39'''single_job_assimilator''' does the following:
     40
     41 * Read the job directory file.
     42 * For each output file, look up its logical name in the result's xml_doc_in.  Then copy the output file to the job directory, using the logical name.