vt  1.6.0
(Virtual Transport)
Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
vt::messaging::ActiveMessenger::ActiveRecvBroker Struct Reference

Active receive broker that keeps a pool of pre-posted Irecv slots per size-class tag to drain unexpected ActiveMsg traffic quickly. More...

Classes

struct  Slot
 

Public Member Functions

void setup (ActiveMessenger *self)
 
bool progress (ActiveMessenger *self)
 
void cleanup ()
 

Static Public Attributes

static constexpr int num_caps_ = 4
 
static constexpr int caps_ [num_caps_] = {512, 2048, 8192, 32768}
 

Private Member Functions

void postSlot (ActiveMessenger *self, Slot &s)
 

Private Attributes

std::vector< Slotslots_
 

Static Private Attributes

static constexpr MPI_TagType tags_ [num_caps_]
 
static constexpr int slots_per_class_ = 4
 

Detailed Description

Active receive broker that keeps a pool of pre-posted Irecv slots per size-class tag to drain unexpected ActiveMsg traffic quickly.

Each completed slot dispatches directly to finishPendingActiveMsgAsyncRecv and is immediately reposted with a fresh buffer of the same capacity.

Member Function Documentation

◆ cleanup()

void vt::messaging::ActiveMessenger::ActiveRecvBroker::cleanup ( )

◆ postSlot()

void vt::messaging::ActiveMessenger::ActiveRecvBroker::postSlot ( ActiveMessenger self,
Slot s 
)
private

◆ progress()

bool vt::messaging::ActiveMessenger::ActiveRecvBroker::progress ( ActiveMessenger self)

◆ setup()

void vt::messaging::ActiveMessenger::ActiveRecvBroker::setup ( ActiveMessenger self)

Member Data Documentation

◆ caps_

constexpr int vt::messaging::ActiveMessenger::ActiveRecvBroker::caps_[num_caps_] = {512, 2048, 8192, 32768}
staticconstexpr

◆ num_caps_

constexpr int vt::messaging::ActiveMessenger::ActiveRecvBroker::num_caps_ = 4
staticconstexpr

◆ slots_

std::vector<Slot> vt::messaging::ActiveMessenger::ActiveRecvBroker::slots_
private

◆ slots_per_class_

constexpr int vt::messaging::ActiveMessenger::ActiveRecvBroker::slots_per_class_ = 4
staticconstexprprivate

◆ tags_

constexpr MPI_TagType vt::messaging::ActiveMessenger::ActiveRecvBroker::tags_[num_caps_]
staticconstexprprivate
Initial value:
= {
static_cast<MPI_TagType>(MPITag::ActiveMsgS),
static_cast<MPI_TagType>(MPITag::ActiveMsgM),
static_cast<MPI_TagType>(MPITag::ActiveMsgL),
static_cast<MPI_TagType>(MPITag::ActiveMsgXL)
}

The documentation for this struct was generated from the following files:
vt::messaging::MPITag::ActiveMsgS
vt::messaging::MPITag::ActiveMsgM
vt::messaging::MPITag::ActiveMsgXL
vt::messaging::MPITag::ActiveMsgL