44#if !defined INCLUDED_VT_GROUP_COLLECTIVE_GROUP_INFO_COLLECTIVE_H
45#define INCLUDED_VT_GROUP_COLLECTIVE_GROUP_INFO_COLLECTIVE_H
70 explicit InfoColl(
bool const in_is_in_group, MPI_Comm default_comm,
bool make_mpi_group)
132 std::vector<GroupCollMsgPtrType>
msgs_ = {};
Definition group_info_base.h:55
GroupCollectiveInfoMsg< GroupMsg<::vt::Message > > GroupCollectiveMsg
Definition group_collective_msg.h:94
size_t RemoteOperationIDType
Definition group_common.h:56
GroupMsg<::vt::Message > GroupOnlyMsg
Definition group_msg.h:88
uint64_t GroupType
Used for hold an identifier for a group.
Definition types_type.h:99
std::function< void()> ActionType
Used for generically store an action to perform.
Definition types_type.h:125
messaging::MsgSharedPtr< T > MsgSharedPtr
Definition smart_ptr.h:370
PhysicalResourceType NodeType
Used to hold the current node/rank or the number of nodes.
Definition types_type.h:57
A specific, isolated reducer instance for a given scope that sequences reduce operations via the redu...
Definition reduce.h:103
Definition group_collective_reduce_msg.h:54
Definition group_collective.h:58
Definition group_info_base.h:57
int32_t WaitCountType
Definition group_info_base.h:58
collective::tree::Tree TreeType
Definition group_info_base.h:59
Definition group_info_collective.h:85
void operator()(FinishedReduceMsg *msg)
Definition group_collective_finished.cc:53
void collectiveFn(MsgSharedPtr< GroupCollectiveMsg > msg)
Definition group_info_collective.cc:560
void downTreeFinished(GroupOnlyMsg *msg)
Definition group_info_collective.cc:769
void freeComm()
Definition group_info_collective.cc:103
void atRoot()
Definition group_info_collective.cc:234
RemoteOperationIDType down_tree_fin_cont_
Definition group_info_collective.h:147
bool inGroup() const
Definition group_info_collective.cc:827
bool is_in_group
Definition group_info_collective.h:127
InfoColl(bool const in_is_in_group, MPI_Comm default_comm, bool make_mpi_group)
Definition group_info_collective.h:70
RemoteOperationIDType makeCollectiveContinuation(GroupType const group_)
Definition group_info_collective.cc:515
void finalizeTree(GroupOnlyMsg *msg)
Definition group_info_collective.cc:755
static void upHan(GroupCollectiveMsg *msg)
Definition group_info_collective.cc:609
ReduceType * ReducePtrType
Definition group_info_collective.h:67
static void newRootHan(GroupCollectiveMsg *msg)
Definition group_info_collective.cc:778
bool make_mpi_group_
Definition group_info_collective.h:160
MsgSharedPtr< GroupCollectiveMsg > GroupCollMsgPtrType
Definition group_info_collective.h:68
MPI_Comm default_comm_
Definition group_info_collective.h:158
ReducePtrType getReduce() const
Definition group_info_collective.cc:794
void finalize()
Definition group_info_collective.cc:693
TreeType * getTree() const
Definition group_info_collective.cc:816
std::vector< GroupCollMsgPtrType > msgs_
Definition group_info_collective.h:132
GroupCollectivePtrType collective_
Definition group_info_collective.h:130
static void downHan(GroupCollectiveMsg *msg)
Definition group_info_collective.cc:774
std::size_t subtree_
Definition group_info_collective.h:143
bool finished_init_
Definition group_info_collective.h:128
GroupCollective GroupCollectiveType
Definition group_info_collective.h:64
bool is_new_root_
Definition group_info_collective.h:139
NodeType getRoot() const
Definition group_info_collective.cc:542
uint32_t extra_count_
Definition group_info_collective.h:134
void sendDownNewTree()
Definition group_info_collective.cc:679
std::list< ActionType > pending_ready_actions_
Definition group_info_collective.h:154
static void finalizeHan(GroupOnlyMsg *msg)
Definition group_info_collective.cc:786
bool isGroupDefault() const
Definition group_info_collective.cc:556
void upTree()
Definition group_info_collective.cc:244
bool is_empty_group_
Definition group_info_collective.h:142
MPI_Comm mpi_group_comm_
Definition group_info_collective.h:159
RemoteOperationIDType new_tree_cont_
Definition group_info_collective.h:150
collective::reduce::Reduce ReduceType
Definition group_info_collective.h:66
NodeType known_root_node_
Definition group_info_collective.h:138
void setupCollectiveSingular()
Definition group_info_collective.cc:72
RemoteOperationIDType new_root_cont_
Definition group_info_collective.h:151
WaitCountType coll_wait_count_
Definition group_info_collective.h:131
std::unique_ptr< GroupCollective > GroupCollectivePtrType
Definition group_info_collective.h:65
static void tree(GroupOnlyMsg *msg)
Definition group_info_collective.cc:602
void newRoot(GroupCollectiveMsg *msg)
Definition group_info_collective.cc:529
MPI_Comm getComm() const
Definition group_info_collective.cc:99
RemoteOperationIDType down_tree_cont_
Definition group_info_collective.h:146
RemoteOperationIDType finalize_cont_
Definition group_info_collective.h:149
virtual ~InfoColl()=default
bool isEmptyGroup() const
Definition group_info_collective.cc:804
bool is_default_group_
Definition group_info_collective.h:141
uint32_t send_down_finished_
Definition group_info_collective.h:137
bool has_root_
Definition group_info_collective.h:140
static void newTreeHan(GroupOnlyMsg *msg)
Definition group_info_collective.cc:790
static void downFinishedHan(GroupOnlyMsg *msg)
Definition group_info_collective.cc:782
RemoteOperationIDType up_tree_cont_
Definition group_info_collective.h:148
uint32_t arrived_count_
Definition group_info_collective.h:133
void readyAction(ActionType const action)
Definition group_info_collective.cc:808
void setupCollective()
Definition group_info_collective.cc:112
uint32_t send_down_
Definition group_info_collective.h:136
uint32_t extra_arrived_count_
Definition group_info_collective.h:135
bool in_phase_two_
Definition group_info_collective.h:129
void newTree(NodeType const &parent)
Definition group_info_collective.cc:651
bool isReady() const
Definition group_info_collective.cc:798
void downTree(GroupCollectiveMsg *msg)
Definition group_info_collective.cc:625