WARPXM v1.10.0
|
Provides interface for messaging between processes. More...
#include <wxmsgtmpl.h>
Provides interface for messaging between processes.
Public Member Functions | |
virtual | ~WxMsgTmpl () |
Destructor. | |
virtual void | send (unsigned num, const T *array, unsigned recvRank, int tag) const =0 |
Send an array to another rank. | |
virtual void | finishSend (WxMsgStatus ms) const =0 |
Finish the send started by startSend. | |
virtual WxMsgStatus | startSend (unsigned num, const T *arr, unsigned recvRank, int tag) const =0 |
Send an array to another rank. | |
virtual void | recv (unsigned num, std::vector< T > &array, unsigned sendRank, int tag) const =0 |
Receive an array from another rank. | |
virtual void | recv (unsigned num, T *array, unsigned sendRank, int tag) const =0 |
Receive an array from another rank. | |
virtual WxMsgStatus | startRecv (unsigned num, unsigned sendRank, int tag=-1) const =0 |
Receive an array from another rank. | |
virtual WxMsgStatus | startRecv (unsigned num, T *arr, unsigned sendRank, int tag=-1) const =0 |
Receive an array from another rank. | |
virtual void | allReduce (unsigned num, T *sendBuff, T *recvBuff, MPI_Op op) const =0 |
Reduce data to all ranks. | |
virtual void | broadcast (unsigned num, T *buffer, int root) const =0 |
Protected Member Functions | |
WxMsgTmpl () | |
Protected so only children can make instances. | |
void | resizeArray (T *&array, unsigned &numElem, unsigned reqNumElem) const |
Resizes a array. | |
void | resizeSendBuff (unsigned reqSize) |
Checks the buffer and resizes it if necessary. | |
void | resizeRecvBuff (unsigned reqSize) |
Checks the buffer and resizes it if necessary. | |
Protected Attributes | |
unsigned | _sendSize |
T * | _sendBuff |
unsigned | _recvSize |
T * | _recvBuff |
|
inlineprotected |
Protected so only children can make instances.
|
pure virtual |
Reduce data to all ranks.
num | Number of elements being reduced |
sendBuff | buffer to reduce |
recvBuff | buffer to recieve reduced data |
op | operation to perform. |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Finish the send started by startSend.
ms | message status object returned by startSend |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Receive an array from another rank.
num | number of elements to recieve |
array | array that is filled with received values |
sendRank | rank that sent array |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Receive an array from another rank.
num | number of elements to receive |
array | array that is filled with received values |
sendRank | rank that sent array |
Implemented in WxMpiMsgTmpl< T >.
|
inlineprotected |
Resizes a array.
Sets number of elements to the exact number of elements in the data.
array | the array to be resized. |
numElem | the number of elements in the array. Is set to reqNumElem |
reqNumElem | the number of array elements needed |
|
inlineprotected |
Checks the buffer and resizes it if necessary.
reqSize | the needed size for the buffer |
|
inlineprotected |
Checks the buffer and resizes it if necessary.
reqSize | the needed size for the buffer |
|
pure virtual |
Send an array to another rank.
@parem num number of elements to send
array | array of length 'num' of data being sent |
recvRank | rank that will receive array |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Receive an array from another rank.
This is a non-blocking call.
num | number of elements to receive |
arr | array to fill with received value |
sendRank | rank we want to receive from |
tag | identifier for data transaction |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Receive an array from another rank.
This is a non-blocking call.
num | number of elements to receive |
sendRank | rank that sent array |
Implemented in WxMpiMsgTmpl< T >.
|
pure virtual |
Send an array to another rank.
This is a non-blocking call.
num | number of elements to send |
arr | array that is filled with values to send |
recvRank | rank that sent array |
tag | identifier for data transaction |
Implemented in WxMpiMsgTmpl< T >.
|
protected |
|
protected |
|
protected |
|
protected |