|
MaMiCo 1.2
|
generic class for send-/ receive methodology. More...
#include <SendReceiveBuffer.h>

Classes | |
| struct | BufferCollective |
| struct | BufferWithID |
Public Member Functions | |
| SendReceiveBuffer () | |
| virtual | ~SendReceiveBuffer () |
Protected Member Functions | |
| void | deleteBuffers () |
| deletes the buffers | |
| template<class Container_T> | |
| void | writeToSendBuffer (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, const Container_T &cells) |
| fills all information that needs to be sent from a coupling cell into the send-buffer. | |
| void | writeToBcastBuffer (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, const Cell_T &cell, I01 idx) |
| fills all information that needs to be broadcast from a coupling cell into the broadcast-buffer. | |
| void | writeToReduceBuffer (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, const Cell_T &cell, I01 idx) |
| fills all information that needs to be reduced to a coupling cell into the reduce-buffer. | |
| template<class Container_T> | |
| void | readFromReceiveBuffer (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, const Container_T &cells) |
| void | readFromCollectiveBuffer (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, Cell_T &couplingCell, I01 idx) |
| void | readFromReduceBuffer (coupling::sendrecv::DataExchangeFromMD2Macro< dim > &dataExchange, Cell_T &couplingCell, I01 idx) |
| void | allocateReceiveBuffers (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, I01 idx) |
| void | allocateBcastBufferForReceiving (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, I01 idx) |
| void | allocateReduceBufferForReceiving (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange, I01 idx) |
| void | triggerSending (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange) |
| void | triggerBcasts (unsigned int rank) |
| void | triggerReceiving (coupling::sendrecv::DataExchange< Cell_T, dim > &dataExchange) |
| void | triggerReduce (unsigned int rank) |
| void | waitAllOperations () |
| void | waitAllCollectiveOperations () |
| void | allocateRequests () |
| void | allocateBcastRequests (unsigned int thisRank) |
| void | allocateReduceRequests (unsigned int thisRank) |
Private Member Functions | |
| void | deleteBuffer (std::map< unsigned int, BufferWithID > &buffer) |
Static Private Member Functions | |
| static void | elementWiseSum (void *in, void *inout, int *len, MPI_Datatype *datatype) |
Private Attributes | |
| std::map< unsigned int, BufferWithID > | _receiveBuffer |
| std::map< unsigned int, BufferWithID > | _sendBuffer |
| std::map< unsigned int, BufferCollective > | _bcastBuffer |
| std::map< unsigned int, BufferCollective > | _reduceBuffer |
| bool | _requestsAllocated |
| MPI_Request * | _requests |
| int | _receiveSize |
| int | _sendSize |
| std::vector< MPI_Comm > | _subComms |
| std::vector< MPI_Group > | _subGroups |
| int | _bcastOrReduceSize |
| MPI_Op | elementWiseSumOperation |
generic class for send-/ receive methodology.
generic class for send-/ receive methodology including buffer implementations. The access to the buffers is prescribed by the DataExchange object.
| Cell_T | cell type |
| dim | Number of dimensions; it can be 1, 2 or 3 |
| coupling::sendrecv::SendReceiveBuffer< Cell_T, dim >::SendReceiveBuffer | ( | ) |
Constructor
|
virtual |
Destructor
|
protected |
Allocates buffer for receiving in the context of the broadcast operation
| dataExchange | |
| idx |
|
protected |
allocates broadcast request
| thisRank |
|
protected |
according to rule by dataExchange, the receive buffers are allocated. This function adds a contribution for the cell at idx.
| dataExchange | |
| idx |
|
protected |
Allocates buffer for receiving in the context of the reduce operation
| dataExchange | |
| idx |
|
protected |
allocates reduce request
| thisRank |
|
protected |
allocates send and receive requests
|
private |
deletes everything inside a given buffer
| buffer |
|
protected |
reads the information from the receive-buffer and fills it into a coupling cell.
| dataExchange | |
| couplingCell | |
| idx |
|
protected |
reads the information from the reduce-buffer and fills it into a coupling cell.
| dataExchange | |
| couplingCell | |
| idx |
|
protected |
triggers the MPI-broadcast on the respective buffers.
| rank |
|
protected |
triggers the MPI-receiving on the respective buffers. No receiving of information from/to this rank.
| dataExchange |
|
protected |
triggers the MPI-reduce on the respective buffers.
| rank |
|
protected |
triggers the MPI-sending on the respective buffers. No sending for information transfer from/ to this rank.
| dataExchange |
|
protected |
wait for all broadcast or reduce operations to complete
|
protected |
wait for all send and receive operations to complete.
|
protected |
fills all information that needs to be broadcast from a coupling cell into the broadcast-buffer.
| dataExchange | |
| cell | |
| idx |
|
protected |
fills all information that needs to be reduced to a coupling cell into the reduce-buffer.
| dataExchange | |
| cell | |
| idx |
|
protected |
fills all information that needs to be sent from a coupling cell into the send-buffer.
| dataExchange | |
| cells |
|
private |
members for collective communication
|
private |
buffer for storing all received messages from MD. Each map entry is identified by a respective rank.
|
private |
flag that will always be reset after every send operation. Triggers instantiation of requests
|
private |
number of receive requests
|
private |
number of send requests