cylc / cylc-flow

Cylc: a workflow engine for cycling systems.
https://cylc.github.io
GNU General Public License v3.0
335 stars 94 forks source link

spawn on demand / event driven graph #3304

Open oliver-sanders opened 5 years ago

oliver-sanders commented 5 years ago

Replace the iterative task pool with an event-driven graph solution.

Just realised that despite all the discussion we don't actually have an issue open for this (let me know if I've simply missed it).

For a longer (and much more rambling) read see https://github.com/cylc/cylc-flow/wiki/Possible-Cylc-Futures#event-driven-scheduler.

Quick overview

Benefits

Further desired benefits

hjoliver commented 5 years ago

Another benefit:

matthewrmshin commented 5 years ago

(Should we mark some of the issues mentioned above as superseded and close them down?)

matthewrmshin commented 5 years ago

(Can probably supersede #2329 as well.)

oliver-sanders commented 5 years ago

(Should we mark some of the issues mentioned above as superseded and close them down?)

I guess, maybe some of the ones in the first section?

(Can probably supersede #2329 as well.)

Good point, added.

matthewrmshin commented 5 years ago

993 was the original version of this issue!

hjoliver commented 4 years ago

update post merge of task-proxy based spawn on demand

With merge of #3515 Cylc now has "spawn on demand" but by a different method than suggested here, which required less extensive refactoring: task proxies simply record (during graph parsing) who depends on their outputs, and spawn them as outputs are completed. So there is still no explicit use of the graph at run time.

We should probably close this issue and replace it with several others: