You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We would like the decision of which branch of a WDL conditional to run to depend only on the condition expression, and the jobs in the body to depend only on their own inputs.
But right now, we have WDL conditionals as a whole depend on what their body jobs might access. So even if we know the condition is false early on, the conditional and anything that depends on it will have to wait for everything it would have used if it were true.
I don't think we can really fix this unless we add a way for jobs that already exist to get new follow-on-of relationships after being created. The jobs downstream of the conditional need to wait for the jobs upstream of the conditional's body only if the condition happens to be true. If we find that the condition is false we want to be able to run them in parallel. If the jobs involved already exist before the condition gets evaluated, we need a way to create (or destroy?) the predecessor links.
Alternatively, we could defer creating any of the jobs downstream of a conditional until we know if the condition is true or false.
We would like the decision of which branch of a WDL conditional to run to depend only on the condition expression, and the jobs in the body to depend only on their own inputs.
But right now, we have WDL conditionals as a whole depend on what their body jobs might access. So even if we know the condition is false early on, the conditional and anything that depends on it will have to wait for everything it would have used if it were true.
I don't think we can really fix this unless we add a way for jobs that already exist to get new follow-on-of relationships after being created. The jobs downstream of the conditional need to wait for the jobs upstream of the conditional's body only if the condition happens to be true. If we find that the condition is false we want to be able to run them in parallel. If the jobs involved already exist before the condition gets evaluated, we need a way to create (or destroy?) the predecessor links.
Alternatively, we could defer creating any of the jobs downstream of a conditional until we know if the condition is true or false.
Originally posted by @DailyDreaming in https://github.com/DataBiosphere/toil/pull/4524#discussion_r1273119966
┆Issue is synchronized with this Jira Story
┆Issue Number: TOIL-1380
The text was updated successfully, but these errors were encountered: