vt::vrt::collection::balance namespace

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::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::getObjectRawLoads(std::shared_ptr<LoadModel> model, ElementIDStruct object, PhaseOffset when)

ElmUserDataType vt::vrt::collection::balance::getObjectUserData(std::shared_ptr<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)

std::unordered_map<NodeType, lb::BaseLB::ElementCommType> vt::vrt::collection::balance::getSharedEdges(elm::CommMapType const& comm_data)

std::unordered_map<LBType, std::string>& vt::vrt::collection::balance::get_lb_names()

int vt::vrt::collection::balance::eatWhitespace(std::ifstream& file)

Variable documentation

static const ElementIDType vt::vrt::collection::balance::no_element_id constexpr

static std::unordered_map<LBType, std::string> vt::vrt::collection::balance::lb_names_

auto vt::vrt::collection::balance::param_str

auto vt::vrt::collection::balance::excluded_str