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

increment_graph_window: don't revisit nodes #5485

Closed oliver-sanders closed 1 year ago

oliver-sanders commented 1 year ago

Avoid re-visiting nodes in the increment_graph_window algorithm.

This will help to reduce the number of recursive calls and will allow us to efficiently include "cousins" in the n>1 window.

Note: Cousins For the graph a => <b> => c, if b1 is active, then b2 is a cousin which should be included in the n=2 window.

See this comment and the larger issue for discussion:

Not revisiting nodes

we can do this by storing graph relations in an easily referenced way (if we don't already) adopting graph sections visited, and skipping walks to head of adopted section (if required)

--- https://github.com/cylc/cylc-flow/issues/5435#issuecomment-1515703855

MetRonnie commented 1 year ago

Closed by #5600