struct
#include <src/vt/epoch/epoch_manip.h>
EpochManip Component for managing epoch ID allocation/deallocation and manipulating the bits inside an epoch identifier.
Used by the system mostly to manage the bits inside an EpochType
. It knows how to set the appropriate bits to change the type bits of an EpochType
by setting the bit pattern.
Base classes
-
template<typename T>struct vt::runtime::component::Component<EpochManip>
Component
class for a generic VT runtime module, CRTP'ed over the component's actual type
Public types
Public static functions
- static auto isRooted(EpochType const& epoch) -> bool
- Gets whether the epoch is rooted or not.
- static auto category(EpochType const& epoch) -> eEpochCategory
- Gets the
eEpochCategory
of a given epoch. - static auto node(EpochType const& epoch) -> NodeType
- Gets the node for the epoch (only relevant for rooted)
-
static auto seq(EpochType const& epoch) -> EpochType::
ImplType - Gets the sequential ID for an epoch.
- static void setIsRooted(EpochType& epoch, bool const is_rooted)
- Set whether the
epoch
is rooted or not. - static void setCategory(EpochType& epoch, eEpochCategory const cat)
- Set the category for the
epoch
. - static void setNode(EpochType& epoch, NodeType const node)
- Set the node for a rooted
epoch
. -
static void setSeq(EpochType& epoch,
EpochType::
ImplType const seq) - Set the sequential ID for an
epoch
. - static auto generateRootedEpoch(eEpochCategory const& category = default_epoch_category) -> EpochType
- Generate the control bits for a rooted epoch.
- static auto generateEpoch(bool const& is_rooted = false, NodeType const& root_node = default_epoch_node, eEpochCategory const& category = default_epoch_category) -> EpochType
- Generate the control bits for an epoch type (rooted or collective)
Constructors, destructors, conversion operators
Public functions
- auto name() -> std::string override
- Get the name of the component.
- auto getNextRootedEpoch(eEpochCategory const& category = default_epoch_category) -> EpochType
- Stateful method to create the next rooted epoch.
- auto getNextRootedEpoch(eEpochCategory const& category, NodeType const root_node) -> EpochType
- Stateful method to create the next rooted epoch with a particular node embedded in the bits.
- auto getNextCollectiveEpoch(eEpochCategory const& category = default_epoch_category) -> EpochType
- Stateful method to create the next collective epoch.
- auto getTerminatedWindow(EpochType epoch) -> EpochWindow*
- Get an appropriate window that stores the list of terminated epoch based on the epoch archetype.
- auto getArchetype(EpochType epoch) const -> EpochType
- Get archetype bits embedded in epoch.
-
template<typename SerializerT>void serialize(SerializerT& s)
Function documentation
static eEpochCategory vt:: epoch:: EpochManip:: category(EpochType const& epoch)
Gets the eEpochCategory
of a given epoch.
Parameters | |
---|---|
epoch in | the epoch to operate on |
Returns | the category of the epoch |
static EpochType:: ImplType vt:: epoch:: EpochManip:: seq(EpochType const& epoch)
Gets the sequential ID for an epoch.
Parameters | |
---|---|
epoch in | the epoch to operate on |
Returns | the sequential number for an epoch |
static void vt:: epoch:: EpochManip:: setIsRooted(EpochType& epoch,
bool const is_rooted)
Set whether the epoch
is rooted or not.
Parameters | |
---|---|
epoch in/out | the epoch to modify |
is_rooted in | whether to set the epoch as rooted or not |
static void vt:: epoch:: EpochManip:: setCategory(EpochType& epoch,
eEpochCategory const cat)
Set the category for the epoch
.
Parameters | |
---|---|
epoch in/out | the epoch to modify |
cat in | whether to set the epoch as rooted or not |
static void vt:: epoch:: EpochManip:: setSeq(EpochType& epoch,
EpochType:: ImplType const seq)
Set the sequential ID for an epoch
.
Parameters | |
---|---|
epoch in/out | the epoch to modify |
seq in | the sequential ID to set on the epoch |
static EpochType vt:: epoch:: EpochManip:: generateRootedEpoch(eEpochCategory const& category = default_epoch_category)
Generate the control bits for a rooted epoch.
Parameters | |
---|---|
category in | the category for the epoch |
Returns | the newly created epoch |
static EpochType vt:: epoch:: EpochManip:: generateEpoch(bool const& is_rooted = false,
NodeType const& root_node = default_epoch_node,
eEpochCategory const& category = default_epoch_category)
Generate the control bits for an epoch type (rooted or collective)
Parameters | |
---|---|
is_rooted in | if the epoch should be rooted or not |
root_node in | the root node for the epoch if is_rooted |
category in | the category for the epoch |
Returns | the newly created epoch |
EpochType vt:: epoch:: EpochManip:: getNextRootedEpoch(eEpochCategory const& category = default_epoch_category)
Stateful method to create the next rooted epoch.
Parameters | |
---|---|
category in | the category for the epoch |
Returns | the newly created epoch |
EpochType vt:: epoch:: EpochManip:: getNextRootedEpoch(eEpochCategory const& category,
NodeType const root_node)
Stateful method to create the next rooted epoch with a particular node embedded in the bits.
Parameters | |
---|---|
category in | the category for the epoch |
root_node in | the root node for the epoch |
Returns | the newly created epoch |
EpochType vt:: epoch:: EpochManip:: getNextCollectiveEpoch(eEpochCategory const& category = default_epoch_category)
Stateful method to create the next collective epoch.
Parameters | |
---|---|
category in | the category for the epoch |
Returns | the newly created epoch |
EpochWindow* vt:: epoch:: EpochManip:: getTerminatedWindow(EpochType epoch)
Get an appropriate window that stores the list of terminated epoch based on the epoch archetype.
Parameters | |
---|---|
epoch in | the epoch in question |
Returns | the window of terminated epochs of that kind |
EpochType vt:: epoch:: EpochManip:: getArchetype(EpochType epoch) const
Get archetype bits embedded in epoch.
Parameters | |
---|---|
epoch in | the epoch in question |
Returns | all bits except for archetype bits masked out |