Scheduler

Interface

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
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.FunctionCallType
FunctionCall{N}

Type representing a function call with N parameters. Contains the function to call, argument symbols, the return symbol and the device to execute on.

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