Project

General

Profile

Distributed workflows » History » Version 1

Peter Amstutz, 03/07/2018 10:10 PM

1 1 Peter Amstutz
h1. Distributed workflows
2
3
h2. Problem description
4
5
A user wants to run a meta-analysis on data located on several different clusters.  For either efficiency or legal reasons, the data should be analyzed in place and the results aggregated and returned to a central location.  The user should be able to express the multi-cluster computation as a single CWL workflow, and no manual intervention should be required while the workflow is running.
6
7
h2. Simplifying assumptions
8
9
User explicitly indicates in the workflow which cluster a certain computation (data+code) happens.
10
11
Data transfer only occurs between the primary cluster and the secondary clusters, not between secondary clusters.
12
13
h2. Proposed solution
14
15
A workflow step can be given a CWL hint "RunOnCluster".  This indicates the tool or subworkflow run by the workflow step should run on a specific Arvados cluster, instead of submitted to the cluster that the workflow runner is currently running on.  The implementation of this would be similar to the "RunInSingleContainer" feature, constructing a container request to run the workflow runner on the remote cluster and wait for results.
16
17
In order for the workflow to run successfully on the remote cluster, it needs its data dependencies (docker images, scripts, reference data, etc).  These are several options:
18
19
* Don't do any data transfer of dependencies.  Workflows will fail if dependencies are not available.  User must manually transfer collections using arv-copy.
20
* Distribute dependencies as part of workflow registration (requires proactively distributing dependencies to every cluster that might ever need it).
21
* Workflow runner determines which dependencies are missing from the remote cluster and pushes them before scheduling the subworkflow (requires that the primary runner have all the data, or is able to facilitate transfer from some other cluster).
22
* Workflow runner on remote cluster determines which dependencies are missing and pulls them from federated peers on demand.
23
24
... wip