MultiplePhases struct
Predict an object's load as a sum over blocks of N future phases.
Expected to be most useful either when queried by an explicitly subphase-aware vector-optimizing load balancer, or when queried by a whole-phase scalar-optimizing load balancer with a Norm model composed on top of this.
Multiple phase blocked predictions will only be meaningfully different from single phase predictions when composed on top of a Predictor model that is not constant across future phases. I.e. LinearModel rather than NaivePersistence or PersistenceMedianLastN.
Base classes
- class ComposedModel
- Utility class to support implementation of composable load modeling components.
Constructors, destructors, conversion operators
-
MultiplePhases(std::shared_ptr<balance::
LoadModel> base, int in_future_phase_block_size) explicit - Constructor.
Public functions
- auto getModeledLoad(ElementIDStruct object, PhaseOffset when) const -> LoadType override
- Provide an estimate of the given object's load during a specified interval.
Function documentation
vt:: vrt:: collection:: balance:: MultiplePhases:: MultiplePhases(std::shared_ptr<balance:: LoadModel> base,
int in_future_phase_block_size) explicit
Constructor.
| Parameters | |
|---|---|
| base in | the base model |
| in_future_phase_block_size in | how many phases to predict as each single queried phase |
LoadType vt:: vrt:: collection:: balance:: MultiplePhases:: getModeledLoad(ElementIDStruct object,
PhaseOffset when) const override
Provide an estimate of the given object's load during a specified interval.
| Parameters | |
|---|---|
| object in | The object whose load is desired |
| when in | The interval in which the estimated load is desired |
| Returns | How much computation time the object is estimated to require |
The updateLoads method must have been called before any call to this.