Serial Mode Scheduler
The SM kernel is used for serial task graph execution on a shared-memory machine. Although the task graph is processed in a serial manner, the individual plugins can indeed utilize shared-memory parallelization approaches, such as OpenMP. The task graph implementation is based on the Boost Graph Library, which not only provides the data structure but also graph algorithms, such as topological sort.
The serial scheduler is based on the list scheduling technique. Informally, this technique uses a prioritized sequence of tasks, which is then processed consecutively. The following figure depicts the major steps of the execution flow.