![]() |
Reference documentation for deal.II version 9.2.0
|
#include <deal.II/base/mpi_consensus_algorithms.h>
Public Member Functions | |
| PEX (Process< T1, T2 > &process, const MPI_Comm &comm) | |
| virtual | ~PEX ()=default |
| virtual void | run () override |
Public Member Functions inherited from Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 > | |
| Interface (Process< T1, T2 > &process, const MPI_Comm &comm) | |
| virtual | ~Interface ()=default |
Private Member Functions | |
| void | answer_requests (int index) |
| unsigned int | start_communication () |
| void | clean_up_and_end_communication () |
Private Attributes | |
| std::vector< unsigned int > | targets |
| std::vector< unsigned int > | sources |
| std::vector< std::vector< T1 > > | send_buffers |
| std::vector< std::vector< T2 > > | recv_buffers |
| std::vector< MPI_Request > | send_and_recv_buffers |
| std::vector< std::vector< T2 > > | requests_buffers |
| std::vector< MPI_Request > | requests_answers |
Additional Inherited Members | |
Protected Attributes inherited from Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 > | |
| Process< T1, T2 > & | process |
| const MPI_Comm & | comm |
| const unsigned int | my_rank |
| const unsigned int | n_procs |
This class implements a concrete algorithm for the ConsensusAlgorithms::Interface base class, using a two step approach. In the first step the source ranks are determined and in the second step a static sparse data exchange is performed.
| T1 | The type of the elements of the vector to be sent. |
| T2 | The type of the elements of the vector to be received. |
Definition at line 367 of file mpi_consensus_algorithms.h.
| Utilities::MPI::ConsensusAlgorithms::PEX< T1, T2 >::PEX | ( | Process< T1, T2 > & | process, |
| const MPI_Comm & | comm | ||
| ) |
|
virtualdefault |
Destructor.
|
overridevirtual |
Run consensus algorithm.
Implements Utilities::MPI::ConsensusAlgorithms::Interface< T1, T2 >.
|
private |
The ith request message from another rank has been received: process the request and send an answer.
|
private |
Start to send all requests via ISend and post IRecvs for the incoming answer messages.
|
private |
After all answers have been exchanged, the MPI data structures can be freed and the received answers can be processed.
|
private |
List of ranks of processes this processes wants to send a request to.
Definition at line 394 of file mpi_consensus_algorithms.h.
|
private |
List of ranks of processes wanting to send a request to this process.
Definition at line 399 of file mpi_consensus_algorithms.h.
|
private |
Buffers for sending requests.
Definition at line 406 of file mpi_consensus_algorithms.h.
|
private |
Buffers for receiving answers to requests.
Definition at line 411 of file mpi_consensus_algorithms.h.
|
private |
Requests for sending requests and receiving answers to requests.
Definition at line 416 of file mpi_consensus_algorithms.h.
|
private |
Buffers for sending answers to requests.
Definition at line 421 of file mpi_consensus_algorithms.h.
|
private |
Requests for sending answers to requests.
Definition at line 426 of file mpi_consensus_algorithms.h.