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 | |
| 25 | NOTE: '''single_job_setup''' is hardwired with the '''i686-pc-linux-gnu''' platform |
| 26 | (i.e. Linux on Intel32). |
| 27 | If 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. |