Optionally spawn to max active cycle points. #1966
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Close #1904. Allows tasks to run out of order. See the discussion in #1538.
I decided against the "interim fix" of spawning two cycles ahead because it turns out to be quite difficult, and downstream stalls can still occur (it just takes two failures instead of one). Instead, as advocated by @benfitzpatrick and @matthewrmshin in #1538, on this branch you can set
[scheduling]spawn to max active cycle points
(...which is pretty self-descriptive).This makes cylc behave exactly "as advertised" (no implicit dependence on previous-instance submit, tasks can run out of order, no stalling downstream of failed tasks) BUT spawn-on-submit has to remain the default for now because of the potential impact of the extra task proxies on:
Also:
However, it may be useful as-is for many real suites, and it serves as a nice proof of the free scheduling that we're ultimately aiming for.
@cylc/core and @trwhitcomb - if all agree, I'll document this along with advice to use it with caution on suites that are not too big with not too much runahead.
The test battery passes here (the new behaviour is only tested by one new test).