| 10 | |
| 11 | The wrapper program (called 'wrapper') is in [ExampleApps boinc_samples]. |
| 12 | It reads a file called 'job.xml' with format: |
| 13 | |
| 14 | {{{ |
| 15 | <job_desc> |
| 16 | <task> |
| 17 | <application>worker_5.10_windows_intelx86.exe</application> |
| 18 | [ <stdin_filename>stdin_file</stdin_filename> ] |
| 19 | [ <stdout_filename>stdout_file</stdout_filename> ] |
| 20 | [ <stderr_filename>stderr_file</stderr_filename> ] |
| 21 | [ <command_line>--foo bar</command_line> ] |
| 22 | </task> |
| 23 | [ ... ] |
| 24 | </job_desc> |
| 25 | }}} |
| 26 | |
| 27 | The job file specifies a sequence of tasks. |
| 28 | |
| 29 | The job file can specify multiple tasks. |
| 30 | This is useful for two purposes: |
| 31 | |
| 32 | * To handle jobs that involve multiple steps |
| 33 | (e.g., proprocessing and postprocessing). |
| 34 | * To break a long job up into smaller pieces. |
| 35 | This provides a form of checkpointing: |
| 36 | ''wrapper'' does checkpointing at the task level, |
| 37 | so that lost CPU time can be limited |
| 38 | even if the legacy applications themselves are not restartable. |
| 39 | |
| 40 | Notes: |
| 41 | |
| 42 | * This requires version 5.5 or higher of the BOINC core client. |
| 43 | * Files opened directly by a worker program must have the <copy_file> tag. |
| 44 | * If '''wrapper''' is passed command-line arguments (e.g., specified in the workunit template) these are passed to each of the applications, after those specified in the job file. |
| 45 | * If the wrapper is used in standalone mode (while debugging), you have to provide the input files with the proper logical, not physical, names. |
| 46 | |
| 47 | == Example == |
93 | | * This requires version 5.5 or higher of the BOINC core client. |
94 | | * Multiple tasks per job is not implemented yet. Future versions of wrapper may allow you to run multiple applications in sequence (as specified in the job.xml file). |
95 | | * TODO: provide a way for projects to supply an animated GIF which is shown (with user/team credit text) as screensaver graphics. |
96 | | * If the wrapper itself has command-line arguments (e.g., specified in the workunit template) these are passed to the application, after those specified in the job file. |
97 | | * If the wrapper is used in standalone mode (while debugging), you have to provide the input files with the proper logical, not physical, names. |
98 | | * The general form of the job file is: |
99 | | {{{ |
100 | | <job_desc> |
101 | | <task> |
102 | | <application>worker_5.10_windows_intelx86.exe</application> |
103 | | <stdin_filename>stdin_file</stdin_filename> |
104 | | <stdout_filename>stdout_file</stdout_filename> |
105 | | [ <stderr_filename>stderr_file</stderr_filename> ] |
106 | | [ <command_line>--foo bar</command_line> ] |
107 | | </task> |
108 | | </job_desc> |
109 | | }}} |
| 129 | |