#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: