The scheduling algorithm is based on dynamic programming as is described next. For simple task graphs, the scheduling algorithm is based on dynamic programming. For more complex task graphs, the scheduling is based on dynamic programming with binning.