Components of the Representation
 
 
Static task graph
- tasks + precedence edges + symbolic control-flow
 - captures behavior of program on arbitrary input
 - concise representation computable by a compiler
 
Dynamic task graph
- tasks + precedence edges
 - captures precise execution behavior on single input
 - instantiated from static task graph + intermediate results
 
Task scheduling method
- Algorithm used by program to allocate tasks to threads