Skip to content

Commit c24e798

Browse files
committed
Closes #11 last diagrams
1 parent 2fcfc88 commit c24e798

File tree

3 files changed

+990
-851
lines changed

3 files changed

+990
-851
lines changed

README.md

+24
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,30 @@ in the graph between cycles.
2727

2828
![Inter-iteration matrix](./docs/assets/images/inter-iteration-matrix.png)
2929

30+
## Node Iterators
31+
32+
This is not part of the paper. Here we show how the algorithm can be used to first remove the
33+
cycles. Next, we use the matrices to decide how to traverse the graph.
34+
35+
![Graph unrolling](./docs/assets/images/graph-unroll.png)
36+
37+
The first iterator, the `CycleIterator` simply goes through all the tasks in the cycles and executes
38+
them in order. The `decyclify` function is used to avoid repeating a node due to a cycle.
39+
40+
The second iterator available is the `TasksIterator`. With this, for each cycle it returns the next tasks
41+
available, as well as any tasks in the next cycles that can be returned.
42+
43+
A task is considered ready to be returned when its sibling in the previous cycle has been executed, and after
44+
its inter-cycle dependency (if any) has been satisfied as well.
45+
46+
It should be possible to use these iterators, or create new ones, and apply it to tools
47+
such as workflow managers that support only DAG scheduling, to schedule an infinite
48+
graph, via graph-unrolling. The next cycle is simply an integer counter incremented,
49+
but could be an ISO8601 date-time function.
50+
51+
> NOTE: this part of the project was a summer holidays project, and is in need of documentation,
52+
> more tests, code review, etc. Feel free to submit pull requests.
53+
3054
## Changelog
3155

3256
**0.1 (2020-??-??)**

docs/assets/images/graph-unroll.png

34.1 KB
Loading

0 commit comments

Comments
 (0)