Scheduler

Interface

ComputableDAGs.schedule_dagFunction
schedule_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{Node} 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.

source

Types

ComputableDAGs.AbstractSchedulerType
AbstractScheduler

Abstract base type for scheduler implementations. The scheduler is used to assign each node to a device and create a topological ordering of tasks.

source

Greedy

ComputableDAGs.GreedySchedulerType
GreedyScheduler

A greedy implementation of a scheduler, creating a topological ordering of nodes and naively balancing them onto the different devices.

source