Scheduler
Interface
ComputableDAGs.schedule_dag — Functionschedule_dag(::Scheduler, ::DAG, ::Machine)Interface functions that must be implemented for implementations of Scheduler.
The function assigns each ComputeTaskNode of the DAG to one of the devices in the given Machine and returns a Vector{Tuple{Node, Device}} representing a topological ordering.
DataTaskNodes are not scheduled to devices since they do not compute. Instead, a data node transfers data from the AbstractDevice of their child to all AbstractDevices of its parents.
The produced schedule can be converted to FunctionCalls using lower.
Types
ComputableDAGs.AbstractScheduler — TypeAbstractSchedulerAbstract base type for scheduler implementations. The scheduler is used to assign each node to a device and create a topological ordering of tasks.
Greedy
ComputableDAGs.GreedyScheduler — TypeGreedySchedulerA greedy implementation of a scheduler, creating a topological ordering of nodes and naively balancing them onto the different devices.