vt::vrt::collection::balance::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.