vt::group::InfoColl struct

Base classes

struct InfoBase virtual

Derived classes

struct Info

Public types

using GroupCollectiveType = GroupCollective
using GroupCollectivePtrType = std::unique_ptr<GroupCollective>
using ReduceType = collective::reduce::Reduce
using ReducePtrType = ReduceType*
using GroupCollMsgPtrType = MsgSharedPtr<GroupCollectiveMsg>

Constructors, destructors, conversion operators

InfoColl(bool const in_is_in_group, MPI_Comm default_comm, bool make_mpi_group) explicit
~InfoColl() defaulted virtual

Public functions

auto getReduce() const -> ReducePtrType
auto getRoot() const -> NodeType
auto isGroupDefault() const -> bool
auto getTree() const -> TreeType*
auto inGroup() const -> bool
auto isReady() const -> bool
void readyAction(ActionType const action)
auto getComm() const -> MPI_Comm
void freeComm()
auto isEmptyGroup() const -> bool

Protected static functions

static void upHan(GroupCollectiveMsg* msg)
static void downHan(GroupCollectiveMsg* msg)
static void newRootHan(GroupCollectiveMsg* msg)
static void downFinishedHan(GroupOnlyMsg* msg)
static void finalizeHan(GroupOnlyMsg* msg)
static void newTreeHan(GroupOnlyMsg* msg)
static void tree(GroupOnlyMsg* msg)

Protected functions

void setupCollective()
void setupCollectiveSingular()

Protected variables

bool is_in_group
bool finished_init_
bool in_phase_two_
GroupCollectivePtrType collective_
WaitCountType coll_wait_count_
std::vector<GroupCollMsgPtrType> msgs_
uint32_t arrived_count_
uint32_t extra_count_
uint32_t extra_arrived_count_
uint32_t send_down_
uint32_t send_down_finished_
NodeType known_root_node_
bool is_new_root_
bool has_root_
bool is_default_group_
bool is_empty_group_
std::size_t subtree_