Critical Path
The critical path is the longest chain of dependent work in a task graph. It sets the minimum runtime given dependencies, and no amount of parallelism shortens it. Covered in ECE459 L13.
Why draw the DAG?
It makes parallel opportunities visible: tasks with no mutual dependency can run concurrently. It’s also useful for explaining parallelism to non-technical stakeholders.
Example from L13: B depends on A; D depends on B and C; C depends on nothing. C can run in parallel with A→B, but the path Start → A → B → D → Finish bounds the total time.
Related concepts
- Work (): total time on one processor
- Span / Depth (): critical-path length; runtime with infinitely many processors
- Brent’s theorem: . Theoretical max speedup is
Shortening the critical path
- break long RAW dependency chains (parallel prefix sum, reduction trees)
- hoist loop-invariant work out
- use speculation to start dependent work early