#include <MPIRequestersNBX.h>
◆ MPIRequestersNBX() [1/2]
dftefe::utils::mpi::MPIRequestersNBX::MPIRequestersNBX |
( |
const std::vector< size_type > & |
targetIDs, |
|
|
const MPIComm & |
comm |
|
) |
| |
◆ MPIRequestersNBX() [2/2]
dftefe::utils::mpi::MPIRequestersNBX::MPIRequestersNBX |
( |
| ) |
|
|
default |
◆ finish()
void dftefe::utils::mpi::MPIRequestersNBX::finish |
( |
| ) |
|
|
private |
After all processors have received all the incoming messages, the MPI data structures can be freed and the received messages can be processed.
◆ getRequestingRankIds()
std::vector< size_type > dftefe::utils::mpi::MPIRequestersNBX::getRequestingRankIds |
( |
| ) |
|
|
overridevirtual |
◆ haveAllIncomingMsgsReceived()
bool dftefe::utils::mpi::MPIRequestersNBX::haveAllIncomingMsgsReceived |
( |
| ) |
|
|
private |
Check whether all of the incoming messages from other processors to the current processor have been received.
◆ haveAllLocalSendReceived()
bool dftefe::utils::mpi::MPIRequestersNBX::haveAllLocalSendReceived |
( |
| ) |
|
|
private |
Check whether all of message sent from the current processor to other processors have been received or not
◆ probeAndReceiveIncomingMsg()
void dftefe::utils::mpi::MPIRequestersNBX::probeAndReceiveIncomingMsg |
( |
| ) |
|
|
private |
Probe for an incoming message and if there is one receive it
◆ signalLocalSendCompletion()
void dftefe::utils::mpi::MPIRequestersNBX::signalLocalSendCompletion |
( |
| ) |
|
|
private |
Signal to all other processors that for this processor all its message sent to other processors have been received. This is done nonblocking barrier (i.e., MPI_IBarrier).
◆ startLocalSend()
void dftefe::utils::mpi::MPIRequestersNBX::startLocalSend |
( |
| ) |
|
|
private |
Start to sending message to all the target processors
◆ d_barrierRequest
MPIRequest dftefe::utils::mpi::MPIRequestersNBX::d_barrierRequest |
|
private |
◆ d_comm
const MPIComm& dftefe::utils::mpi::MPIRequestersNBX::d_comm |
|
private |
◆ d_myRank
int dftefe::utils::mpi::MPIRequestersNBX::d_myRank |
|
private |
◆ d_numProcessors
int dftefe::utils::mpi::MPIRequestersNBX::d_numProcessors |
|
private |
◆ d_recvBuffers
std::vector<std::unique_ptr<int> > dftefe::utils::mpi::MPIRequestersNBX::d_recvBuffers |
|
private |
Buffers for receiving requests. We use a vector of unique pointers because that guarantees that the buffers themselves are never moved around in memory, even if the vector is resized and consequently its elements (the pointers) are moved around.
◆ d_recvRequests
std::vector<std::unique_ptr<MPIRequest> > dftefe::utils::mpi::MPIRequestersNBX::d_recvRequests |
|
private |
Requests for receiving requests.
◆ d_requestingProcesses
std::set<size_type> dftefe::utils::mpi::MPIRequestersNBX::d_requestingProcesses |
|
private |
List of processes who have made a request to this process.
◆ d_sendBuffers
std::vector<int> dftefe::utils::mpi::MPIRequestersNBX::d_sendBuffers |
|
private |
Buffers for sending requests.
◆ d_sendRequests
std::vector<MPIRequest> dftefe::utils::mpi::MPIRequestersNBX::d_sendRequests |
|
private |
Requests for sending requests.
◆ d_targetIDs
std::vector<size_type> dftefe::utils::mpi::MPIRequestersNBX::d_targetIDs |
|
private |
List of processes this processor wants to send requests to.
The documentation for this class was generated from the following files: