Common Workflow Language integration with Arvados » History » Version 6
Peter Amstutz, 08/08/2016 03:58 PM
| 1 | 1 | Peter Amstutz | h1. Common Workflow Language integration with Arvados |
|---|---|---|---|
| 2 | |||
| 3 | 3 | Peter Amstutz | The main integration is @arvados-cwl-runner@. This tool is used both as a client to submit a job to run the workflow (@arvados-cwl-runner --submit@) and for running the workflow directly (@arvados-cwl-runner --local@). When the user starts a CWL workflow from workbench, it functions similar to @--submit@ mode. |
| 4 | 2 | Peter Amstutz | |
| 5 | Because submit mode works by creating a "runner" job whose purpose is to manage execution of the workflow, it requires an @arvados/jobs@ Docker image with an up-to-date @arvados-cwl-runner@. |
||
| 6 | |||
| 7 | 5 | Peter Amstutz | When running a workflow: |
| 8 | |||
| 9 | 6 | Peter Amstutz | # The user submits a workflow by running @arvados-cwl-runner@ or through workbench, this creates an "workflow job" |
| 10 | # The workflow job is dispatched to a compute node (Compute1) |
||
| 11 | # The workflow job runs @arvados-cwl-runner@ in a @arvados/jobs@ Docker container with the associated CWL workflow and workflow inputs as job inputs |
||
| 12 | 1 | Peter Amstutz | # The runner job is responsible for actually executing the workflow: |
| 13 | 6 | Peter Amstutz | ## Create a job for each workflow step |
| 14 | ## Submit the job to API server (Job A) |
||
| 15 | 5 | Peter Amstutz | ## Wait for the job to complete |
| 16 | 6 | Peter Amstutz | ## Get the output collection for the job (Output A) |
| 17 | ## Compute the resulting CWL output object for the workflow step (Result A) |
||
| 18 | 5 | Peter Amstutz | ## Iterate over the workflow until all steps have been executed and final workflow output is available |
| 19 | 6 | Peter Amstutz | # Return the final workflow result |
| 20 | 2 | Peter Amstutz | |
| 21 | 1 | Peter Amstutz | !cwl-arvados-flow-submit.png! |