Module Bistro_engine.Scheduler

module DAG : Bistro_tdag.Tdag_sig.S with type task = Task.t
type time = float
type event =
| Init of {
dag : DAG.t;
needed : Task.t list;
already_done : Task.t list;
}
| Task_ready of Task.t
| Task_started of Task.t * Allocator.resource
| Task_ended of Task.result
| Task_skipped of Task.t * [ `Done_already | `Missing_dep | `Allocation_error of string ]
class type logger = object ... end
type trace =
| Run of {
ready : time;
start : time;
end_ : time;
outcome : Task.result;
}
| Skipped of [ `Done_already | `Missing_dep | `Allocation_error of string ]
val compile : Bistro.any_workflow list ‑> DAG.t * Task.t list * Core_kernel.Std.String.Set.t
val run : ?⁠logger:logger ‑> ?⁠goals:Task.t list ‑> Task.config ‑> Allocator.t ‑> DAG.t ‑> trace Core_kernel.Std.String.Map.t Lwt.t