Dynamic scheduling of DF
SDF is limited in modeling power
- no run-time choice
- cannot implement Gaussian elimination
More general DF is too powerful
- non-Static DF is Turing-complete (Buck ‘93)
- bounded-memory scheduling is not always possible
BDF: semi-static scheduling of special “patterns”
- if-then-else
- repeat-until, do-while
General case: thread-based dynamic scheduling
(Parks ‘96: may not terminate, but never fails if feasible)