|
| WxMpiMsg () |
| Construct a new MPI messenger give a set of communicating processors.
|
|
int | rank () const override |
| Rank of process.
|
|
unsigned | numProcs () const override |
| Number of processes taking part in messaging.
|
|
WxMsgBase * | createSubComm (const std::vector< int > &ranks) override |
| Split communicator into a child communicator.
|
|
WxMsgBase * | splitComm (int color, int order) override |
| See MPI_Comm_split.
|
|
void | barrier () const override |
| Block till all processes hit this barrier.
|
|
void * | finishRecv (WxMsgStatus ms) const override |
| Finish the receive started by startRecv and return a pointer to the data recieved.
|
|
void | finishSend (WxMsgStatus ms) const override |
| Finish the send started by startSend.
|
|
bool | checkRecv (WxMsgStatus ms) const override |
| Check status of recieve started by a startRecv.
|
|
MPI_Comm | getMpiComm () const |
| Get MPI communicator for this class.
|
|
virtual | ~WxMsgBase () |
| Destructor.
|
|
virtual int | rank () const =0 |
| Rank of process.
|
|
virtual unsigned | numProcs () const =0 |
| Number of processes taking part in messaging.
|
|
WxMsgBase * | parent () const |
| Get parent communicating processor group.
|
|
virtual WxMsgBase * | createSubComm (const std::vector< int > &ranks)=0 |
| Split communicator into a child communicator.
|
|
virtual WxMsgBase * | splitComm (int color, int order)=0 |
| See MPI_Comm_split.
|
|
virtual void | barrier () const =0 |
| Block till all processes hit this barrier.
|
|
template<typename T > |
void | send (const std::vector< T > &array, unsigned recvRank, int tag=-1) const |
| Send a std::vector to another rank.
|
|
template<typename T > |
void | send (unsigned num, const T *array, unsigned recvRank, int tag=-1) const |
| Send an array to another rank.
|
|
template<typename T > |
WxMsgStatus | startSend (const std::vector< T > &vec, unsigned recvRank, int tag=-1) const |
| Send an vector to another rank.
|
|
template<typename T > |
WxMsgStatus | startSend (unsigned num, const T *arr, unsigned recvRank, int tag=-1) const |
| Send an array to another rank.
|
|
virtual void | finishSend (WxMsgStatus ms) const =0 |
| Finish the send started by startSend.
|
|
template<typename T > |
void | recv (int num, std::vector< T > &array, unsigned sendRank, int tag=-1) const |
| Receive a std::vector from another rank.
|
|
template<typename T > |
void | recv (unsigned num, T *array, unsigned sendRank, int tag=-1) const |
| Receive an array from another rank.
|
|
template<typename T > |
WxMsgStatus | startRecv (unsigned num, unsigned sendRank, int tag=-1) const |
| Receive an array from another rank.
|
|
template<typename T > |
WxMsgStatus | startRecv (unsigned num, T *arr, unsigned sendRank, int tag=-1) const |
| Receive an array from another rank.
|
|
template<typename T > |
WxMsgStatus | startRecv (std::vector< T > &vec, unsigned sendRank, int tag=-1) const |
| Receive an array from another rank.
|
|
virtual void * | finishRecv (WxMsgStatus ms) const =0 |
| Finish the receive started by startRecv and return a pointer to the data recieved.
|
|
virtual bool | checkRecv (WxMsgStatus ms) const =0 |
| Check status of recieve started by a startRecv.
|
|
template<typename T > |
void | allReduce (unsigned num, T *sendBuff, T *recvBuff, MPI_Op op) const |
| Reduce data to all ranks.
|
|
template<typename T > |
std::vector< T > | allReduce (std::vector< T > sendBuff, MPI_Op op) const |
| Reduce data to all ranks (vector form)
|
|
template<typename T > |
void | broadcast (unsigned num, T *buffer, int root) const |
|