struct
#include <src/vt/topos/location/manager.h>
LocationManager A core VT component that manages instances of location managers for specific virtual entity instances across a distributed machine.
Tracks multiple instances of EntityLocationCoord
which is the actual manager for a common instance of distributed entities (like a collection that is spread out across nodes). The LocationManager
manages those instances based on instance identifiers with a consistent mapping across the distributed system.
The location manager creates these coordinators on demand, because messages might arrive out-of-order wrt the construction of the location coordinator.
Base classes
-
template<typename T>struct vt::runtime::component::Component<LocationManager>
Component
class for a generic VT runtime module, CRTP'ed over the component's actual type
Public types
-
template<typename LocType>using PtrType = std::unique_ptr<LocType>
- using LocCoordPtrType = LocationCoord*
- using LocInstContainerType = std::unordered_map<LocInstType, LocCoordPtrType>
- using VrtLocType = EntityLocationCoord<int32_t>
- using VrtLocProxyType = EntityLocationCoord<VirtualProxyType>
-
template<typename IndexT>using IndexedElmType = EntityLocationCoord<IndexT>
-
template<typename IndexT>using CollectionLocType = PtrType<IndexT>
- using LocErasureType = LocationCoord
- using LocDeleterType = std::function<void(LocErasureType*)>
- using CollectionLocErasedType = std::unique_ptr<LocErasureType, LocDeleterType>
- using CollectionContainerType = std::unordered_map<VirtualProxyType, CollectionLocErasedType>
-
template<typename LocType>using ActionLocInstType = std::function<void(LocType*)>
-
template<typename LocType>using PendingContainerType = std::vector<ActionLocInstType<LocType>>
Public static variables
- static LocInstType cur_loc_inst
- Next instance identifier.
Public static functions
-
template<typename LocType>static void insertInstance(LocInstType const i, LocType* ptr)
- Insert a new coordinator instance.
- static auto getInstance(LocInstType const inst) -> LocCoordPtrType
- Get a coordinator instance.
-
template<typename LocType>static void applyInstance(LocInstType const inst, ActionLocInstType<LocType> action)
- Perform an action on a coordinator.
Constructors, destructors, conversion operators
- LocationManager() defaulted
- System call to construct a location manager.
- ~LocationManager() virtual
Public functions
- auto name() -> std::string override
- Get the name of the component.
-
template<typename IndexT>auto getCollectionLM(VirtualProxyType const& proxy) -> IndexedElmType<IndexT>*
- Get the location coordinator for a collection.
-
template<typename IndexT>void insertCollectionLM(VirtualProxyType const& proxy)
- Insert a new location coordinator for a collection.
-
template<typename SerializerT>void serialize(SerializerT& s)
Public variables
Protected variables
Function documentation
template<typename LocType>
static void vt:: location:: LocationManager:: insertInstance(LocInstType const i,
LocType* ptr)
Insert a new coordinator instance.
Parameters | |
---|---|
i in | the instance ID |
ptr in | pointer to the coordinator |
static LocCoordPtrType vt:: location:: LocationManager:: getInstance(LocInstType const inst)
Get a coordinator instance.
Parameters | |
---|---|
inst in | the instance ID |
Returns | the location coordinator |
template<typename LocType>
static void vt:: location:: LocationManager:: applyInstance(LocInstType const inst,
ActionLocInstType<LocType> action)
Perform an action on a coordinator.
Parameters | |
---|---|
inst in | the instance ID |
action in | action to perform |
template<typename IndexT>
IndexedElmType<IndexT>* vt:: location:: LocationManager:: getCollectionLM(VirtualProxyType const& proxy)
Get the location coordinator for a collection.
Parameters | |
---|---|
proxy in | the collection proxy bits |
Returns | pointer to the coordinator, typed on the collection/index |
template<typename IndexT>
void vt:: location:: LocationManager:: insertCollectionLM(VirtualProxyType const& proxy)
Insert a new location coordinator for a collection.
Parameters | |
---|---|
proxy in | the collection proxy bits |