27#include "neml2/dispatchers/WorkScheduler.h"
96 void setup()
override;
101 const std::vector<DeviceStatus> &
status()
const {
return _devices; }
103 std::vector<Device>
devices()
const override {
return _available_devices; }
124 std::vector<Device> _available_devices;
133 std::vector<DeviceStatus> _devices;
136 std::function<double(
const DeviceStatus &)> _custom_availability_calculator;
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:52
bool schedule_work_impl(Device &, std::size_t &) const override
Pick the next device to dispatch work to.
Definition StaticHybridScheduler.cxx:146
void completed_work_impl(Device, std::size_t) override
Update the scheduler with the completion of the last batch.
Definition StaticHybridScheduler.cxx:183
StaticHybridScheduler(const OptionSet &options)
Construct from options.
Definition StaticHybridScheduler.cxx:56
const std::vector< DeviceStatus > & status() const
Definition StaticHybridScheduler.h:101
void dispatched_work_impl(Device, std::size_t) override
Update the scheduler with the dispatch of the last batch.
Definition StaticHybridScheduler.cxx:168
std::vector< Device > devices() const override
Device options.
Definition StaticHybridScheduler.h:103
void setup() override
Definition StaticHybridScheduler.cxx:63
static OptionSet expected_options()
Options for the scheduler.
Definition StaticHybridScheduler.cxx:36
bool all_work_completed() const override
Check if all work has been completed.
Definition StaticHybridScheduler.cxx:197
void set_availability_calculator(std::function< double(const DeviceStatus &)>)
Set a custom availability calculator.
Definition StaticHybridScheduler.cxx:140
WorkScheduler(const OptionSet &options)
Construct a new WorkScheduler object.
Definition WorkScheduler.cxx:39
Definition DiagnosticsInterface.cxx:30
c10::Device Device
Definition types.h:66
Definition StaticHybridScheduler.h:41
std::size_t load
Definition StaticHybridScheduler.h:54
DeviceStatus(Device device, std::size_t batch_size, std::size_t capacity, double priority)
Definition StaticHybridScheduler.h:42
std::size_t batch_size
Definition StaticHybridScheduler.h:51
std::size_t capacity
Definition StaticHybridScheduler.h:52
Device device
Definition StaticHybridScheduler.h:50
double priority
Definition StaticHybridScheduler.h:53