Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CWL job chaining is sub-optimal because we can't chain when a job has multiple predecessors #3697

Open
mr-c opened this issue Jul 2, 2021 · 4 comments

Comments

@mr-c
Copy link
Contributor

mr-c commented Jul 2, 2021

┆Issue is synchronized with this Jira Story
┆friendlyId: TOIL-949

@mberacochea
Copy link
Contributor

@mr-c Can you please elaborate on this?. I would like to improve this if possible.

@mr-c
Copy link
Contributor Author

mr-c commented Aug 5, 2021

@mr-c Can you please elaborate on this?. I would like to improve this if possible.

See also #3696 for more details

@adamnovak
Copy link
Member

It looks like specifically the problem is that we can't chain to the next job if there are multiple predecessors of it, and that might happen more often in CWL.

@adamnovak adamnovak changed the title some CWL job chaining is sub-optimal CWL job chaining is sub-optimal because we can't chain when a job has multiple predecessors Aug 17, 2022
@adamnovak
Copy link
Member

I think this happens more often in CWL because we're making a predecessor/successor link whenever one job uses an output from another job, even if that link would be transitively redundant.

So if you have jobs A, B, and C, each of which uses the results of all the previous jobs, then you won't be able to chain from B to C because A is also a predecessor of C, and C has multiple predecessors, which Toil can only handle when scheduling from the leader. The fact that B couldn't have been running unless A was already done isn't actually used to infer that we ought to be able to run C.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants