graph-prototype
graph-prototype copied to clipboard
[4pt] graph-prototype scheduler: define API between graph and scheduler
We have a demo of how to create a node that contains a scheduler with an arbitrary graph inside. We also need another type of a sub-graph - one that exposes its nodes to the parent graph, that is, to the scheduler of the parent graph.
This will allow for the scheduler to "see through" the sub-graph in order to be able to optimize sub-graph's nodes as an integral part of the whole graph.
The approach to take is to make graph and schedule implement the node_model interface so that they can be directly instantiated inside of the graph as any other node can.
The connections that are currently instantiated lazily should take all this into account, and consider the preferred buffer sizes of ports for the host and sub graphs.
Addition 21.12.
(merging https://github.com/fair-acc/graph-prototype/issues/238 into this one)
The original issue aimed at API to expose the topology to the scheduler.
We also need it do be exposed to library users.
Expose the API to access the graph topology:
- Blocks traversal in a graph
- Nested blocks traversal in a block (for sub-grapph-as-a-block node)
- Connections traversal in a graph and nested blocks
- Accessing blocks via unique identifiers (identifier, or for nested blocks parent_identifier/.../block_identifier)
- Removing added blocks
- Replacing blocks
Related: https://github.com/fair-acc/graph-prototype/issues/115
Description updated in line with the decisions from today's meeting.
pre-requisite to be completed: https://github.com/fair-acc/graph-prototype/issues/210