vt
1.5.0
(Virtual Transport)
|
Go to the documentation of this file.
44 #if !defined INCLUDED_VT_COLLECTIVE_COLLECTIVE_ALG_H
45 #define INCLUDED_VT_COLLECTIVE_COLLECTIVE_ALG_H
60 #include <unordered_map>
62 namespace vt {
namespace collective {
99 std::string
name()
override {
return "Collective"; }
146 template <
typename SerializerT>
155 using ScopeMapType = std::unordered_map<TagType, std::unique_ptr<detail::ScopeImpl>>;
std::unordered_map< TagType, std::unique_ptr< detail::ScopeImpl > > ScopeMapType
Definition: collective_alg.h:155
TagType scope_
Definition: collective_alg.h:126
CollectiveAlg()
Definition: collective_alg.cc:51
static void runCollective(CollectiveMsg *msg)
Definition: collective_alg.cc:136
A distinct scope for enqueuing ordered collective operations.
Definition: collective_scope.h:112
Manage distinct scopes for reductions.
Definition: reduce_manager.h:63
CollectiveMsg(bool in_is_user_tag, TagType in_scope, TagType in_seq, NodeType in_root)
Definition: collective_alg.h:117
void serialize(SerializerT &s)
Definition: collective_alg.h:147
ScopeMapType system_scope_
Definition: collective_alg.h:159
bool isDeallocated(bool is_user_tag, TagType scope_bits) const
Check if a scope has been deallocated.
Definition: collective_alg.cc:77
Definition: reduce_msg.h:75
NodeType root_
Definition: collective_alg.h:128
Definition: collective_alg.h:116
PhysicalResourceType NodeType
Used to hold the current node/rank or the number of nodes.
Definition: types_type.h:57
int32_t TagType
Used to hold an tag, e.g., on messages or reduces.
Definition: types_type.h:73
Component class for a generic VT runtime module, CRTP'ed over the component's actual type
Definition: component.h:95
collective::CollectiveAlg * theCollective()
Definition: runtime_get.cc:101
Perform asynchronous collectives within VT.
Definition: collective_alg.h:75
Definition: activefn.h:51
Scatter data across all nodes from a single origin.
Definition: scatter.h:67
std::string name() override
Get the name of the component.
Definition: collective_alg.h:99
Definition: default_msg.h:81
Perform a collective barrier that is safe to use with VT handlers in flight.
Definition: barrier.h:80
CollectiveScope makeCollectiveScope(TagType scope_tag=no_tag)
Create a new scope for sequenced MPI operations. Each scope has a distinct, independent collective se...
Definition: collective_alg.cc:57
TagType next_system_scope_
Definition: collective_alg.h:157
uint64_t CollectiveAlgType
Used to identify a collective operation.
Definition: types_type.h:77
TagType seq_
Definition: collective_alg.h:127
reduce::ReduceMsg ReduceMsg
Definition: collective_alg.h:163
constexpr const CollectiveAlgType fst_collective_alg
Definition: collective_alg.h:64
ScopeMapType user_scope_
Definition: collective_alg.h:158
std::vector< MsgSharedPtr< CollectiveMsg > > postponed_collectives_
Definition: collective_alg.h:160
bool is_user_tag_
Definition: collective_alg.h:125