Reference documentation for deal.II version 9.5.0
|
#include <deal.II/base/mpi_consensus_algorithms.h>
Public Member Functions | |
Interface () | |
Interface (Process< RequestType, AnswerType > &process, const MPI_Comm comm) | |
virtual | ~Interface ()=default |
std::vector< unsigned int > | run () |
std::vector< unsigned int > | run (Process< RequestType, AnswerType > &process, const MPI_Comm comm) |
virtual std::vector< unsigned int > | run (const std::vector< unsigned int > &targets, const std::function< RequestType(const unsigned int)> &create_request, const std::function< AnswerType(const unsigned int, const RequestType &)> &answer_request, const std::function< void(const unsigned int, const AnswerType &)> &process_answer, const MPI_Comm comm)=0 |
Private Attributes | |
Process< RequestType, AnswerType > * | process |
MPI_Comm | comm |
A base class for algorithms that implement consensus algorithms, see the documentation of the surrounding namespace for more information.
This base class only introduces a basic interface to achieve these goals, while derived classes implement different algorithms to actually compute such communication patterns and perform the communication.
RequestType | The type of the elements of the vector to be sent. |
AnswerType | The type of the elements of the vector to be received. |
Definition at line 234 of file mpi_consensus_algorithms.h.
Utilities::MPI::ConsensusAlgorithms::Interface< RequestType, AnswerType >::Interface | ( | ) |
Default constructor.
Utilities::MPI::ConsensusAlgorithms::Interface< RequestType, AnswerType >::Interface | ( | Process< RequestType, AnswerType > & | process, |
const MPI_Comm | comm | ||
) |
Constructor. process
is an object that provides information about what processes the current process wants to communicate with, and the data to be sent/received. comm
is the communicator on which this communication is to happen.
|
virtualdefault |
Destructor. Made virtual
to ensure that one can work with derived classes.
std::vector< unsigned int > Utilities::MPI::ConsensusAlgorithms::Interface< RequestType, AnswerType >::run | ( | ) |
Run the consensus algorithm and return a vector of process ranks that have requested answers from the current process.
std::vector< unsigned int > Utilities::MPI::ConsensusAlgorithms::Interface< RequestType, AnswerType >::run | ( | Process< RequestType, AnswerType > & | process, |
const MPI_Comm | comm | ||
) |
|
pure virtual |
Run the consensus algorithm and return a vector of process ranks that have requested answers from the current process.
[in] | targets | A vector that contains the ranks of processes to which requests should be sent and from which answers need to be received. |
[in] | create_request | A function object that takes the rank of a target process as argument and returns the message that forms the request to this target. |
[in] | answer_request | A function that takes as arguments the rank of the process that has sent a request to us, along with the message of the request, and returns the message that forms the answer that should be sent back to the requesting process. |
[in] | process_answer | A function object that takes as argument the rank of a process from which we have received an answer to a previously sent request, along with the message that forms this answer. This function is used to describe what the caller of the consensus algorithm wants to do with the received answer. |
[in] | comm | The MPI communicator on which the whole algorithm is to be performed. |
Implemented in Utilities::MPI::ConsensusAlgorithms::NBX< RequestType, AnswerType >, Utilities::MPI::ConsensusAlgorithms::PEX< RequestType, AnswerType >, Utilities::MPI::ConsensusAlgorithms::Serial< RequestType, AnswerType >, and Utilities::MPI::ConsensusAlgorithms::Selector< RequestType, AnswerType >.
|
private |
Reference to the process provided by the user.
This member variable is only used in the deprecated constructor and the run() function without argument. It is a nullptr
otherwise
Definition at line 330 of file mpi_consensus_algorithms.h.
|
private |
MPI communicator.
This member variable is only used in the deprecated constructor and the run() function without argument.
Definition at line 339 of file mpi_consensus_algorithms.h.