namespace
balance
Namespaces
- namespace replay
Classes
- struct CollectionLBData
-
template<typename ColT>struct CollectStatsMsg
- struct CommOverhead
- Add some implied, unaccounted work time for communication activity.
- class ComposedModel
- Utility class to support implementation of composable load modeling components.
- struct ConcatenatedIterator
- struct ConfigEntry
-
template<typename T>struct Converter
-
template<>struct Converter<bool>
-
template<>struct Converter<double>
-
template<>struct Converter<int32_t>
-
template<>struct Converter<std::string>
- struct DualLoadMapObjectIterator
- struct FilterIterator
- struct InvokeMsg
- struct LazyMigrationMsg
-
template<typename T>struct LBArgsEnumConverter
- A VT component that converts enumerated values to their stringifications for the purposes of reading LB arguments from the LB config file.
- struct LBDataHolder
- Data structure that holds LB data for a set of phases. Can output them as JSON.
- struct LBDataRestartReader
- A VT component for reading a user-input mapping file for object to node.
- struct LBManager
- A VT component that manages creation and coordination of load balancers.
- struct LinearModel
- Predict an object's load with a linear regression model.
- struct LoadData
- struct LoadMapObjectIterator
- struct LoadModel
- Interface for transforming measurements of past object loads into predictions of future object load for load balancing strategies.
- struct LoadMsg
- struct LoadMsgAsync
- struct LoadSummary
- struct MultiplePhases
- Predict an object's load as a sum over blocks of N future phases.
- struct NaivePersistence
- Predicts future object loads as exactly matching their load in the last phase.
- struct NodeLBData
- A VT component that backs the instrumentation of virtualized entities on each node, such as the objects that the collection manager orchestrates, to provide data to the load balancing framework. The actual instrumentation occurs in
vt::vrt:collection:
:balance::ElementLBData which is composed into the elements of a collection. - class Norm
- A load model that computes an l-norm of a given power across subphases.
- struct ObjectIterator
- struct ObjectIteratorImpl
- struct PerCollection
- Selects an underlying model to call corresponding to the collection containing the queried object.
- struct PersistenceMedianLastN
- Predicts loads as the median of the last N phases.
- struct PhaseOffset
- A description of the interval of interest for a modeled load query.
- struct ProposedReassignment
- struct RawData
- A strictly retrospective view of the recorded object timings.
- struct ReadLBConfig
- struct Reassignment
- struct ReassignmentMsg
- class SelectSubphases
- A load model to direct consideration to load data relating to a specific set of subphases, rather than the entire set.
- class WeightedCommunicationVolume
- Models work as an affine combination of load and communication.
- struct WeightedMessages
Enums
- enum class LBType: int8_t { NoLB = 0, GreedyLB = 1, HierarchicalLB = 2, RotateLB = 3, TemperedLB = 4, OfflineLB = 5, RandomLB = 7, TestSerializationLB = 8, TemperedWMin = 9 }
Typedefs
-
using ElementIDStruct = elm::
ElementIDStruct -
using ElementIDType = elm::
ElementIDType -
using CommMapType = elm::
CommMapType - using UserDataValueType = std::variant<int, double, std::string>
- User-defined LB values.
- using ElmUserDataType = std::unordered_map<std::string, UserDataValueType>
- using LoadMapType = std::unordered_map<ElementIDStruct, LoadSummary>
- using SubphaseLoadMapType = std::unordered_map<ElementIDStruct, std::vector<LoadType>>
- using DataMapType = std::unordered_map<ElementIDStruct, ElmUserDataType>
- User-defined LB values map.
- using ConfigIndex = int64_t
Functions
- auto getObjectLoads(std::shared_ptr<LoadModel> model, ElementIDStruct object, PhaseOffset when) -> LoadSummary
- auto getObjectLoads(LoadModel* model, ElementIDStruct object, PhaseOffset when) -> LoadSummary
- auto getObjectRawLoads(std::shared_ptr<LoadModel> model, ElementIDStruct object, PhaseOffset when) -> LoadSummary
- auto getObjectRawLoads(LoadModel* model, ElementIDStruct object, PhaseOffset when) -> LoadSummary
- auto getObjectUserData(std::shared_ptr<LoadModel> model, ElementIDStruct object, PhaseOffset when) -> ElmUserDataType
- auto getObjectUserData(LoadModel* model, ElementIDStruct object, PhaseOffset when) -> ElmUserDataType
- auto getNodeLoads(std::shared_ptr<LoadModel> model, PhaseOffset when) -> LoadSummary
-
void applyReassignment(const std::shared_ptr<const balance::
Reassignment>& reassignment) -
auto reduceVec(lb::
Statistic stat, std::vector<balance:: LoadData>&& vec) -> balance:: LoadData -
auto getSharedEdges(elm::
CommMapType const& comm_data) -> std::unordered_map<NodeType, lb:: BaseLB:: ElementCommType> -
void makeGraphSymmetric(PhaseType phase,
objgroup::
proxy:: Proxy<lb:: BaseLB> proxy) - auto get_lb_names() -> std::unordered_map<LBType, std::string>&
-
auto getRecvSendDirection(elm::
CommKeyType const& comm) -> std::pair<ElementIDType, ElementIDType> - auto eatWhitespace(std::ifstream& file) -> int
Variables
- static const ElementIDType no_element_id constexpr
- static std::unordered_map<LBType, std::string> lb_names_
- auto param_str
- auto excluded_str
Enum documentation
enum class vt:: vrt:: collection:: balance:: LBType: int8_t
Typedef documentation
using vt:: vrt:: collection:: balance:: ElementIDStruct = elm:: ElementIDStruct
using vt:: vrt:: collection:: balance:: ElementIDType = elm:: ElementIDType
using vt:: vrt:: collection:: balance:: CommMapType = elm:: CommMapType
using vt:: vrt:: collection:: balance:: UserDataValueType = std::variant<int, double, std::string>
User-defined LB values.
using vt:: vrt:: collection:: balance:: ElmUserDataType = std::unordered_map<std::string, UserDataValueType>
using vt:: vrt:: collection:: balance:: LoadMapType = std::unordered_map<ElementIDStruct, LoadSummary>
using vt:: vrt:: collection:: balance:: SubphaseLoadMapType = std::unordered_map<ElementIDStruct, std::vector<LoadType>>
using vt:: vrt:: collection:: balance:: DataMapType = std::unordered_map<ElementIDStruct, ElmUserDataType>
User-defined LB values map.
using vt:: vrt:: collection:: balance:: ConfigIndex = int64_t
Function documentation
LoadSummary vt:: vrt:: collection:: balance:: getObjectLoads(std::shared_ptr<LoadModel> model,
ElementIDStruct object,
PhaseOffset when)
LoadSummary vt:: vrt:: collection:: balance:: getObjectLoads(LoadModel* model,
ElementIDStruct object,
PhaseOffset when)
LoadSummary vt:: vrt:: collection:: balance:: getObjectRawLoads(std::shared_ptr<LoadModel> model,
ElementIDStruct object,
PhaseOffset when)
LoadSummary vt:: vrt:: collection:: balance:: getObjectRawLoads(LoadModel* model,
ElementIDStruct object,
PhaseOffset when)
ElmUserDataType vt:: vrt:: collection:: balance:: getObjectUserData(std::shared_ptr<LoadModel> model,
ElementIDStruct object,
PhaseOffset when)
ElmUserDataType vt:: vrt:: collection:: balance:: getObjectUserData(LoadModel* model,
ElementIDStruct object,
PhaseOffset when)
LoadSummary vt:: vrt:: collection:: balance:: getNodeLoads(std::shared_ptr<LoadModel> model,
PhaseOffset when)
void vt:: vrt:: collection:: balance:: applyReassignment(const std::shared_ptr<const balance:: Reassignment>& reassignment)
balance:: LoadData vt:: vrt:: collection:: balance:: reduceVec(lb:: Statistic stat,
std::vector<balance:: LoadData>&& vec)
std::unordered_map<NodeType, lb:: BaseLB:: ElementCommType> vt:: vrt:: collection:: balance:: getSharedEdges(elm:: CommMapType const& comm_data)
void vt:: vrt:: collection:: balance:: makeGraphSymmetric(PhaseType phase,
objgroup:: proxy:: Proxy<lb:: BaseLB> proxy)
std::unordered_map<LBType, std::string>& vt:: vrt:: collection:: balance:: get_lb_names()
std::pair<ElementIDType, ElementIDType> vt:: vrt:: collection:: balance:: getRecvSendDirection(elm:: CommKeyType const& comm)
int vt:: vrt:: collection:: balance:: eatWhitespace(std::ifstream& file)
Variable documentation
static const ElementIDType vt:: vrt:: collection:: balance:: no_element_id constexpr
auto vt:: vrt:: collection:: balance:: param_str
auto vt:: vrt:: collection:: balance:: excluded_str