namespace
detail
Namespaces
- namespace tags
Classes
- struct ReduceIDImpl
- Sent in all reduction messages to identify the scope and reduction stamp so it gets merged with the right data.
- struct ReduceScope
- A unique scope for reduction operations, identified by the obj group proxy, virtual proxy, group ID, or component ID.
-
template<typename T>struct ReduceScopeHolder
- Holds instances of reducers indexed by the reduction scope bits.
- struct TagPair
- Holds a pair of tags, which can be used to identify a reduction instance.
Typedefs
- using ReduceStamp = std::variant<StrongTag, TagPair, StrongSeq, StrongUserID, StrongEpoch>
- Reduction stamp bits to identify a specific instance of a reduction.
- using UserIDType = uint64_t
-
using StrongTag = Strong<TagType, no_tag, tags::
TagTag> -
using StrongSeq = Strong<SequentialIDType, no_seq_id, tags::
SeqTag> -
using StrongObjGroup = Strong<ObjGroupProxyType, no_obj_group, tags::
ObjGroupTag> -
using StrongVrtProxy = Strong<VirtualProxyType, no_vrt_proxy, tags::
VrtProxyTag> -
using StrongGroup = Strong<GroupType, no_group, tags::
GroupTag> -
using StrongCom = Strong<ComponentIDType, u32empty, tags::
ComponentTag> -
using StrongUserID = Strong<UserIDType, u64empty, tags::
UserIDTag> - using StrongEpoch = EpochType
Functions
-
template<typename T, typename... Args>auto makeScope(Args && ... args) -> ReduceScope
- Create a new reduction scope.
- auto stringizeStamp(ReduceStamp const& stamp) -> std::string
- Stringize a
ReduceStamp
.
Typedef documentation
using vt:: collective:: reduce:: detail:: ReduceStamp = std::variant<StrongTag, TagPair, StrongSeq, StrongUserID, StrongEpoch>
Reduction stamp bits to identify a specific instance of a reduction.
using vt:: collective:: reduce:: detail:: UserIDType = uint64_t
using vt:: collective:: reduce:: detail:: StrongTag = Strong<TagType, no_tag, tags:: TagTag>
using vt:: collective:: reduce:: detail:: StrongSeq = Strong<SequentialIDType, no_seq_id, tags:: SeqTag>
using vt:: collective:: reduce:: detail:: StrongObjGroup = Strong<ObjGroupProxyType, no_obj_group, tags:: ObjGroupTag>
using vt:: collective:: reduce:: detail:: StrongVrtProxy = Strong<VirtualProxyType, no_vrt_proxy, tags:: VrtProxyTag>
using vt:: collective:: reduce:: detail:: StrongGroup = Strong<GroupType, no_group, tags:: GroupTag>
using vt:: collective:: reduce:: detail:: StrongCom = Strong<ComponentIDType, u32empty, tags:: ComponentTag>
using vt:: collective:: reduce:: detail:: StrongUserID = Strong<UserIDType, u64empty, tags:: UserIDTag>
using vt:: collective:: reduce:: detail:: StrongEpoch = EpochType
Function documentation
template<typename T, typename... Args>
ReduceScope vt:: collective:: reduce:: detail:: makeScope(Args && ... args)
Create a new reduction scope.
Parameters | |
---|---|
args in | constructor for reduction scope type |
Returns | the new scope |
std::string vt:: collective:: reduce:: detail:: stringizeStamp(ReduceStamp const& stamp)
Stringize a ReduceStamp
.
Parameters | |
---|---|
stamp in | the reduction stamp |
Returns | a string |