| FEAT 3
    Finite Element Analysis Toolbox | 
Communicator class. More...
#include <dist.hpp>
| Public Member Functions | |
| Comm () | |
| Standard constructor.  More... | |
| Comm (Comm &&other) | |
| Move constructor.  More... | |
| Comm (const Comm &)=delete | |
| communicators are non-copyable | |
| Comm (MPI_Comm comm_) | |
| MPI_Commhandle constructor  More... | |
| virtual | ~Comm () | 
| virtual destructor  More... | |
| bool | is_null () const | 
| Checks whether this communicator is a null communicator.  More... | |
| bool | is_self () const | 
| Checks whether this communicator is the self communicator.  More... | |
| bool | is_world () const | 
| Checks whether this communicator is the world communicator.  More... | |
| MPI_Comm & | mpi_comm () | 
| const MPI_Comm & | mpi_comm () const | 
| Comm & | operator= (Comm &&other) | 
| Move-assignment operator.  More... | |
| Comm & | operator= (const Comm &)=delete | 
| communicators are non-copyable | |
| int | rank () const | 
| Returns the rank of this process in this communicator.  More... | |
| int | size () const | 
| Returns the size of this communicator.  More... | |
| Comm Creation | |
| Comm | comm_dup () const | 
| Creates a copy of this communicator.  More... | |
| Comm | comm_create_range_incl (int count, int first=0, int stride=1) const | 
| Creates a new sub-communicator from a strided range of ranks.  More... | |
| Comm | comm_create_incl (int n, const int *ranks) const | 
| Creates a new sub-communicator for a given set of ranks.  More... | |
| Comm | comm_split (int color, int key) const | 
| Creates a new sub-communicator by splitting this communicator.  More... | |
| Barrier Synchronization | |
| void | barrier () const | 
| Blocking barrier.  More... | |
| Request | ibarrier () const | 
| Nonblocking barrier.  More... | |
| Point-To-Point Communication (Blocking) | |
| void | send (const void *buffer, std::size_t count, const Datatype &datatype, int dest, int tag=0) const | 
| Blocking Send.  More... | |
| template<typename T_ > | |
| void | send (const T_ *buffer, std::size_t count, int dest, int tag=0) const | 
| Blocking Send.  More... | |
| void | recv (void *buffer, std::size_t count, const Datatype &datatype, int source, int tag, Status &status) const | 
| Blocking Receive.  More... | |
| void | recv (void *buffer, std::size_t count, const Datatype &datatype, int source, int tag=0) const | 
| Blocking Receive.  More... | |
| template<typename T_ > | |
| void | recv (T_ *buffer, std::size_t count, int source, int tag, Status &status) const | 
| Blocking Receive.  More... | |
| template<typename T_ > | |
| void | recv (T_ *buffer, std::size_t count, int source, int tag=0) const | 
| Blocking Receive.  More... | |
| Point-To-Point Communication (Nonblocking) | |
| Request | isend (const void *buffer, std::size_t count, const Datatype &datatype, int dest, int tag=0) const | 
| Nonblocking Send.  More... | |
| template<typename T_ > | |
| Request | isend (const T_ *buffer, std::size_t count, int dest, int tag=0) const | 
| Nonblocking Send.  More... | |
| Request | irecv (void *buffer, std::size_t count, const Datatype &datatype, int source, int tag=0) const | 
| Nonblocking Receive.  More... | |
| template<typename T_ > | |
| Request | irecv (T_ *buffer, std::size_t count, int source, int tag=0) const | 
| Nonblocking Receive.  More... | |
| Broadcasts | |
| void | bcast (void *buffer, std::size_t count, const Datatype &datatype, int root) const | 
| Blocking broadcast.  More... | |
| template<typename T_ > | |
| void | bcast (T_ *buffer, std::size_t count, int root) const | 
| Blocking broadcast.  More... | |
| Request | ibcast (void *buffer, std::size_t count, const Datatype &datatype, int root) const | 
| Nonblocking broadcast.  More... | |
| template<typename T_ > | |
| Request | ibcast (T_ *buffer, std::size_t count, int root) const | 
| Nonblocking broadcast.  More... | |
| Gather and Scatter | |
| void | gather (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype, int root) const | 
| Blocking gather.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | gather (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount, int root) const | 
| Blocking gather.  More... | |
| Request | igather (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype, int root) const | 
| Nonblocking gather.  More... | |
| template<typename ST_ , typename RT_ > | |
| Request | igather (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount, int root) const | 
| Nonblocking gather.  More... | |
| void | scatter (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype, int root) const | 
| Blocking scatter.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | scatter (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount, int root) const | 
| Blocking scatter.  More... | |
| Request | iscatter (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype, int root) const | 
| Nonblocking scatter.  More... | |
| template<typename ST_ , typename RT_ > | |
| Request | iscatter (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount, int root) const | 
| Nonblocking scatter.  More... | |
| void | allgather (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype) const | 
| Blocking gather-to-all.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | allgather (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount) const | 
| Blocking gather-to-all.  More... | |
| Request | iallgather (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype) const | 
| Nonblocking gather-to-all.  More... | |
| template<typename ST_ , typename RT_ > | |
| Request | iallgather (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount) const | 
| Nonblocking gather-to-all.  More... | |
| void | allgatherv (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, const int *recvcounts, const int *displs, const Datatype &recvtype) const | 
| Blocking gather-to-all.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | allgatherv (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, const int *recvcounts, const int *displs) const | 
| Blocking gather-to-all.  More... | |
| void | alltoall (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype) const | 
| Blocking All-to-All Scatter/Gather.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | alltoall (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount) const | 
| Blocking All-to-All Scatter/Gather.  More... | |
| Request | ialltoall (const void *sendbuf, std::size_t sendcount, const Datatype &sendtype, void *recvbuf, std::size_t recvcount, const Datatype &recvtype) const | 
| Nonblocking All-to-All Scatter/Gather.  More... | |
| template<typename ST_ , typename RT_ > | |
| Request | ialltoall (const ST_ *sendbuf, std::size_t sendcount, RT_ *recvbuf, std::size_t recvcount) const | 
| Nonblocking All-to-All Scatter/Gather.  More... | |
| void | alltoallv (const void *sendbuf, const int *sendcounts, const int *sdispls, const Datatype &sendtype, void *recvbuf, const int *recvcounts, const int *rdispls, const Datatype &recvtype) const | 
| Blocking All-to-All Scatter/Gather.  More... | |
| template<typename ST_ , typename RT_ > | |
| void | alltoallv (const ST_ *sendbuf, const int *sendcounts, const int *sdispls, RT_ *recvbuf, const int *recvcounts, const int *rdispls) const | 
| Blocking All-to-All Scatter/Gather.  More... | |
| Reductions and Scans | |
| void | reduce (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op, int root) const | 
| Blocking Reduce.  More... | |
| template<typename T_ > | |
| void | reduce (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op, int root) const | 
| Blocking Reduce.  More... | |
| Request | ireduce (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op, int root) const | 
| Nonblocking Reduce.  More... | |
| template<typename T_ > | |
| Request | ireduce (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op, int root) const | 
| Nonblocking Reduce.  More... | |
| void | allreduce (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op) const | 
| Blocking All-Reduce.  More... | |
| template<typename T_ > | |
| void | allreduce (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op) const | 
| Blocking All-Reduce.  More... | |
| Request | iallreduce (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op) const | 
| Nonblocking All-Reduce.  More... | |
| template<typename T_ > | |
| Request | iallreduce (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op) const | 
| Nonblocking All-Reduce.  More... | |
| void | scan (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op) const | 
| Blocking Inclusive Scan.  More... | |
| template<typename T_ > | |
| void | scan (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op) const | 
| Blocking Inclusive Scan.  More... | |
| void | exscan (const void *sendbuf, void *recvbuf, std::size_t count, const Datatype &datatype, const Operation &op) const | 
| Blocking Exclusive Scan.  More... | |
| template<typename T_ > | |
| void | exscan (const T_ *sendbuf, T_ *recvbuf, std::size_t count, const Operation &op) const | 
| Blocking Exclusive Scan.  More... | |
| Extended and derived communications | |
| The following function are not mere wrappers for MPI functions, but implement more complex utility tasks. | |
| void | bcast_stringstream (std::stringstream &stream, int root=0) const | 
| Blocking broadcast of a std::stringstream.  More... | |
| void | bcast_binarystream (BinaryStream &stream, int root=0) const | 
| Blocking broadcast of a BinaryStream.  More... | |
| void | print (std::ostream &os, const String &msg, int root=0) const | 
| Prints a message line to an output stream.  More... | |
| void | print (const String &msg, int root=0) const | 
| Prints a message line to the standard output stream cout.  More... | |
| void | allprint (std::ostream &os, const String &msg, int root=0) const | 
| Prints the ordered messages of all processes to an output stream.  More... | |
| void | allprint (const String &msg, int root=0) const | 
| Prints the ordered messages of all processes to the standard output stream cout.  More... | |
| void | print_flush (std::ostream &os, int root=0) const | 
| Explicitly flushes the output stream.  More... | |
| void | print_flush (int root=0) const | 
| Explicitly flushes cout.  More... | |
| Static Public Member Functions | |
| static Comm | null () | 
| Returns a null communicator.  More... | |
| static Comm | self () | 
| Returns a copy of the self communicator.  More... | |
| static Comm | world () | 
| Returns a copy of the world communicator.  More... | |
| Public Attributes | |
| MPI_Comm | comm | 
| our MPI communicator handle  More... | |
| Protected Attributes | |
| int | _rank | 
| our rank  More... | |
| int | _size | 
| the communicator size  More... | |
Communicator class.
This class effectively wraps around the MPI_Comm handle and contains wrapper functions for many (but not all) MPI functions, which work on communicators, most notably all message passing functions.
The wrapper functions provided by this class are written in accordance with the following guidelines:
MPI_ prefix.void.comm argument is removed, as it is given by this Comm object itself.std::size_t rather than int.int for technical reasons, e.g. allgatherv or alltoallv.MPI_Datatype handle arguments are replaced by references to Dist::Datatype objects.MPI_Op handle arguments are replaced by references to Dist::Operation objects.MPI_Status pointer arguments are replaced by references to Dist::Status objects.MPI_Request pointer arguments are removed, as nonblocking operations return a Dist::Request object representing the request.tag arguments are defaulted to 0, unless there exists another non-defaulted argument following the tag argument, of course.Furthermore, this class offers additional overloads for many of the "pure" wrapper functions:
Examples:
| FEAT::Dist::Comm::Comm | ( | ) | 
Standard constructor.
This constructor creates a null communicator representing MPI_COMM_NULL. 
Definition at line 372 of file dist.cpp.
Referenced by comm_create_incl(), comm_create_range_incl(), comm_dup(), comm_split(), null(), self(), and world().
| 
 | explicit | 
MPI_Comm handle constructor 
This constructor creates a communicator for a given MPI_Comm handle.
| [in] | comm_ | The MPI_Commhandle that is to be encapsulated. | 
MPI_Comm_free() unless comm_ is MPI_COMM_WORLD or MPI_COMM_NULL. | FEAT::Dist::Comm::Comm | ( | Comm && | other | ) | 
Move constructor.
This constructor moves the internal handle of the source communicator and sets the source communicator to a null communicator.
other.| [in,out] | other | The source communicator that is to be moved. | 
| 
 | virtual | 
| 
 | inline | 
Blocking gather-to-all.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
Definition at line 2321 of file dist.hpp.
References allgather().
| void FEAT::Dist::Comm::allgather | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Blocking gather-to-all.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 589 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), allgather(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_allgather(), and FEAT::Geometry::PartiIterative< ConformalMesh< Shape_, num_coords_, Coord_ > >::build_elems_at_rank().
| 
 | inline | 
Blocking gather-to-all.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.int rather than std::size_t as the type for the receive counts and displacements for technical reasons!| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcounts | A transient array holding the sizes of the receive buffers in datatype objects. | 
| [in] | displs | A transient array holding the displacements of the receive buffers in datatype objects. | 
Definition at line 2459 of file dist.hpp.
References allgatherv().
| void FEAT::Dist::Comm::allgatherv | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| const int * | recvcounts, | ||
| const int * | displs, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Blocking gather-to-all.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.int rather than std::size_t as the type for the receive counts and displacements for technical reasons!| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcounts | A transient array holding the sizes of the receive buffers in datatype objects. | 
| [in] | displs | A transient array holding the displacements of the receive buffers in datatype objects. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 607 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by allgatherv().
| 
 | inline | 
Prints the ordered messages of all processes to the standard output stream cout. 
| [in] | msg | The message that is to be written to cout. This function automatically appends a new-line after the message (of each rank) and prefixes each output line with the rank of the author process. | 
| [in] | root | The root process that should collect the messages and perform the print. | 
Definition at line 3138 of file dist.hpp.
References allprint().
| void FEAT::Dist::Comm::allprint | ( | std::ostream & | os, | 
| const String & | msg, | ||
| int | root = 0 | ||
| ) | const | 
Prints the ordered messages of all processes to an output stream.
| [in] | os | The output stream to write to. Must be a valid stream on the root process. | 
| [in] | msg | The message that is to be written to os. This function automatically appends a new-line after the message (of each rank) and prefixes each output line with the rank of the author process. | 
| [in] | root | The root process that should collect the messages and perform the print. | 
Definition at line 789 of file dist.cpp.
References _rank, _size, gather(), FEAT::Math::ilog10(), FEAT::String::pad_front(), recv(), send(), FEAT::String::split_by_charset(), FEAT::stringify(), and XASSERTM.
Referenced by allprint().
| 
 | inline | 
Blocking All-Reduce.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
Definition at line 2854 of file dist.hpp.
References allreduce().
| void FEAT::Dist::Comm::allreduce | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op | ||
| ) | const | 
Blocking All-Reduce.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
Definition at line 655 of file dist.cpp.
References comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by FEAT::Global::MeanFilter< DT_, IT_ >::MeanFilter(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_calc_max(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_multi_layered(), allreduce(), FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >::apply(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::bytes(), FEAT::Control::Meshopt::MeshoptControlBase< DomainControl_ >::compute_mesh_quality(), FEAT::Global::MeanFilter< DT_, IT_ >::filter_rhs(), FEAT::Global::MeanFilter< DT_, IT_ >::filter_sol(), FEAT::MemoryUsage::format_peak_physical_usage(), FEAT::Statistics::get_formatted_solver_internals(), FEAT::Statistics::get_formatted_times(), FEAT::Global::Gate< LocalVector_, Mirror_ >::get_num_global_dofs(), FEAT::Assembly::ScalarDiscreteEvalData< DT_, dim_ >::mean_value_dist(), FEAT::Assembly::VectorDiscreteEvalData< DT_, dim_ >::mean_value_dist(), FEAT::Assembly::MatrixDiscreteEvalData< DT_, dim_i_, dim_j_ >::mean_value_dist(), FEAT::Control::Statistics::report(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::serialize_partitioning(), FEAT::Assembly::TraceAssemblyStokesBodyForceAssemblyJob< VectorVelo_, VectorPres_, SpaceVelo_, SpacePres_ >::sync(), FEAT::Assembly::ScalarErrorInfo< DataType_ >::synchronize(), FEAT::Assembly::VectorErrorInfo< DataType_, dim_ >::synchronize(), FEAT::Assembly::FunctionIntegralInfo< DataType_, ValueType_, GradientType_, HessianType_ >::synchronize(), FEAT::Assembly::VelocityInfo< DataType_, dim_ >::synchronize(), and FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::used_elements().
| 
 | inline | 
Blocking All-to-All Scatter/Gather.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
Definition at line 2517 of file dist.hpp.
References alltoall().
| void FEAT::Dist::Comm::alltoall | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Blocking All-to-All Scatter/Gather.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The size of the receive buffer in datatype objects. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 615 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by alltoall().
| 
 | inline | 
Blocking All-to-All Scatter/Gather.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.int rather than std::size_t as the type for the send/receive counts and displacements for technical reasons!| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcounts | A transient array holding the number of datatype objects send to each process. | 
| [in] | sdispls | A transient array holding the displacements of the send buffers in datatype objects. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcounts | A transient array holding the number of datatype objects received from each process. | 
| [in] | rdispls | A transient array holding the displacements of the receive buffers in datatype objects. | 
Definition at line 2661 of file dist.hpp.
References alltoallv().
| void FEAT::Dist::Comm::alltoallv | ( | const void * | sendbuf, | 
| const int * | sendcounts, | ||
| const int * | sdispls, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| const int * | recvcounts, | ||
| const int * | rdispls, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Blocking All-to-All Scatter/Gather.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.int rather than std::size_t as the type for the send/receive counts and displacements for technical reasons!| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcounts | A transient array holding the number of datatype objects send to each process. | 
| [in] | sdispls | A transient array holding the displacements of the send buffers in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcounts | A transient array holding the number of datatype objects received from each process. | 
| [in] | rdispls | A transient array holding the displacements of the receive buffers in datatype objects. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 633 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by alltoallv().
| void FEAT::Dist::Comm::barrier | ( | ) | const | 
| 
 | inline | 
Blocking broadcast.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
| [in,out] | buffer | A transient pointer to the send/receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | root | The rank of the root process that is sending the broadcast. | 
Definition at line 1936 of file dist.hpp.
References bcast().
| void FEAT::Dist::Comm::bcast | ( | void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | root | ||
| ) | const | 
Blocking broadcast.
| [in,out] | buffer | A transient pointer to the send/receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | root | The rank of the root process that is sending the broadcast. | 
Definition at line 541 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_patch_halos(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), bcast(), bcast_binarystream(), bcast_stringstream(), FEAT::Geometry::PartiIterative< ConformalMesh< Shape_, num_coords_, Coord_ > >::build_elems_at_rank(), and FEAT::Global::Muxer< LocalVector_, Mirror_ >::compile().
| void FEAT::Dist::Comm::bcast_binarystream | ( | BinaryStream & | stream, | 
| int | root = 0 | ||
| ) | const | 
Blocking broadcast of a BinaryStream.
| [in,out] | stream | The stream that is to be broadcasted. | 
| [in] | root | The rank of the root process that is sending the broadcast. | 
Definition at line 757 of file dist.cpp.
References bcast(), FEAT::BinaryStream::container(), and rank().
| void FEAT::Dist::Comm::bcast_stringstream | ( | std::stringstream & | stream, | 
| int | root = 0 | ||
| ) | const | 
| Comm FEAT::Dist::Comm::comm_create_incl | ( | int | n, | 
| const int * | ranks | ||
| ) | const | 
Creates a new sub-communicator for a given set of ranks.
This function is a short-cut, which creates a process group by using MPI_Group_incl and then creates a corresponding new communicator via MPI_Comm_create.
 
| [in] | n | The number of desired ranks in the sub-communicator. Must be > 0. | 
| [in] | ranks | An transient array of unique ranks that should be part of the new sub-communicator. | 
| Comm FEAT::Dist::Comm::comm_create_range_incl | ( | int | count, | 
| int | first = 0, | ||
| int | stride = 1 | ||
| ) | const | 
Creates a new sub-communicator from a strided range of ranks.
This function is a short-cut, which creates a process group by using MPI_Group_range_incl and then creates a corresponding new communicator via MPI_Comm_create.
The ranks, which are contained in the new sub-communicator, are given by first, first+stride, first+2*stride, ..., first+(count-1)*stride.
| [in] | count | The number desired ranks in the sub-communicator. Must be > 0. | 
| [in] | first | The rank of the first process to be included in the sub-communicator. | 
| [in] | stride | The stride for the rank range. Must be >= 1. | 
Definition at line 472 of file dist.cpp.
References Comm(), _size, comm, and XASSERT.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_scattered(), and FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered().
| Comm FEAT::Dist::Comm::comm_dup | ( | ) | const | 
Creates a copy of this communicator.
Definition at line 459 of file dist.cpp.
Referenced by FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_single(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_single_process(), and FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_single_process().
| Comm FEAT::Dist::Comm::comm_split | ( | int | color, | 
| int | key | ||
| ) | const | 
Creates a new sub-communicator by splitting this communicator.
This functions splits this communicator into disjoint sub-communicators.
| [in] | color | The color of this process. | 
| [in] | key | The key for the ranking of the process. | 
| 
 | inline | 
Blocking Exclusive Scan.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the scan operation. | 
Definition at line 3035 of file dist.hpp.
References exscan().
| void FEAT::Dist::Comm::exscan | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op | ||
| ) | const | 
Blocking Exclusive Scan.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the scan operation. | 
Definition at line 683 of file dist.cpp.
References comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), and exscan().
| 
 | inline | 
Blocking gather.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | root | The rank of the root process that is gathering the data. | 
Definition at line 2055 of file dist.hpp.
References gather().
| void FEAT::Dist::Comm::gather | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype, | ||
| int | root | ||
| ) | const | 
Blocking gather.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | root | The rank of the root process that is gathering the data. | 
Definition at line 553 of file dist.cpp.
References _rank, comm, and FEAT::Dist::Datatype::dt.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), allprint(), gather(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join_send(), and FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::serialize_partitioning().
| 
 | inline | 
Nonblocking gather-to-all.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
Definition at line 2387 of file dist.hpp.
References iallgather().
| Request FEAT::Dist::Comm::iallgather | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Nonblocking gather-to-all.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 597 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by iallgather().
| 
 | inline | 
Nonblocking All-Reduce.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
Definition at line 2917 of file dist.hpp.
References iallreduce().
| Request FEAT::Dist::Comm::iallreduce | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op | ||
| ) | const | 
Nonblocking All-Reduce.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
Definition at line 660 of file dist.cpp.
References comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by FEAT::Global::SynchScalarTicket< DT_ >::SynchScalarTicket(), and iallreduce().
| 
 | inline | 
Nonblocking All-to-All Scatter/Gather.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
Definition at line 2583 of file dist.hpp.
References ialltoall().
| Request FEAT::Dist::Comm::ialltoall | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype | ||
| ) | const | 
Nonblocking All-to-All Scatter/Gather.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
Definition at line 623 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by ialltoall().
| Request FEAT::Dist::Comm::ibarrier | ( | ) | const | 
| 
 | inline | 
Nonblocking broadcast.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
| [in,out] | buffer | A resident pointer to the send/receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | root | The rank of the root process that is sending the broadcast. | 
Definition at line 1983 of file dist.hpp.
References ibcast().
| Request FEAT::Dist::Comm::ibcast | ( | void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | root | ||
| ) | const | 
Nonblocking broadcast.
| [in,out] | buffer | A resident pointer to the send/receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | root | The rank of the root process that is sending the broadcast. | 
Definition at line 546 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by ibcast().
| 
 | inline | 
Nonblocking gather.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | root | The rank of the root process that is gathering the data. | 
Definition at line 2127 of file dist.hpp.
References igather().
| Request FEAT::Dist::Comm::igather | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype, | ||
| int | root | ||
| ) | const | 
Nonblocking gather.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The size of the send buffer in datatype objects. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The number of datatype objects received from each process. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | root | The rank of the root process that is gathering the data. | 
Definition at line 561 of file dist.cpp.
References _rank, comm, and FEAT::Dist::Datatype::dt.
Referenced by igather().
| 
 | inline | 
Nonblocking Receive.
This function automatically deducts the datatype of the receive buffer (if possible).
| [in] | buffer | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
Definition at line 1887 of file dist.hpp.
References irecv().
| Request FEAT::Dist::Comm::irecv | ( | void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | source, | ||
| int | tag = 0 | ||
| ) | const | 
Nonblocking Receive.
| [in] | buffer | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
Definition at line 716 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by FEAT::Global::SynchVectorTicket< VT_, VMT_ >::SynchVectorTicket(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::_apply(), FEAT::Global::AlgDofPartiMatrix< LocalMatrix_, Mirror_ >::_assemble_buffers(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_calc_shortest_edge(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_patch_halos(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), FEAT::Geometry::GlobalMaskedBoundaryFactory< ParentMesh_ >::_sync_bnd_masks(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_synchronize(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_synchronize(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), FEAT::Global::AlgDofPartiVector< LocalVector_, Mirror_ >::download(), FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), FEAT::Global::SynchMatrix< MT_, VMT_ >::init(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::init_numeric(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::init_symbolic(), irecv(), FEAT::Assembly::StokesFBMAssembler< MeshType_ >::sync(), and FEAT::Global::AlgDofPartiMatrix< LocalMatrix_, Mirror_ >::upload_numeric().
| 
 | inline | 
Nonblocking Reduce.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
| [in] | root | The rank of the root process that receives the reduction result. | 
Definition at line 2799 of file dist.hpp.
References ireduce().
| Request FEAT::Dist::Comm::ireduce | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op, | ||
| int | root | ||
| ) | const | 
Nonblocking Reduce.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
| [in] | root | The rank of the root process that receives the reduction result. | 
Definition at line 647 of file dist.cpp.
References _rank, comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by ireduce().
| bool FEAT::Dist::Comm::is_null | ( | ) | const | 
Checks whether this communicator is a null communicator.
true, if this communicator represents MPI_COMM_NULL, otherwise false. Definition at line 454 of file dist.cpp.
References comm.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered(), and FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos().
| bool FEAT::Dist::Comm::is_self | ( | ) | const | 
| bool FEAT::Dist::Comm::is_world | ( | ) | const | 
| 
 | inline | 
Nonblocking scatter.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the recvbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The size of the receive buffer in datatype objects. | 
| [in] | root | The rank of the root process that is scattering the data. | 
Definition at line 2263 of file dist.hpp.
References iscatter().
| Request FEAT::Dist::Comm::iscatter | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype, | ||
| int | root | ||
| ) | const | 
Nonblocking scatter.
sendbuf and recvbuf are allowed to be identical; in this case, the recvbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A resident pointer to the receive buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | recvcount | The size of the receive buffer in datatype objects. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | root | The rank of the root process that is scattering the data. | 
Definition at line 579 of file dist.cpp.
References _rank, comm, and FEAT::Dist::Datatype::dt.
Referenced by iscatter().
| 
 | inline | 
Nonblocking Send.
This function automatically deducts the datatype of the send buffer (if possible).
| [in] | buffer | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send buffer in datatype objects. | 
| [in] | dest | The rank of the destination process. | 
| [in] | tag | The tag for the message. | 
Definition at line 1834 of file dist.hpp.
References isend().
| Request FEAT::Dist::Comm::isend | ( | const void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | dest, | ||
| int | tag = 0 | ||
| ) | const | 
Nonblocking Send.
| [in] | buffer | A resident pointer to the send buffer for the operation. The pointer to the buffer is stored internally and must remain valid until the returned request is fulfilled. | 
| [in] | count | The size of the send buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send buffer contents. | 
| [in] | dest | The rank of the destination process. | 
| [in] | tag | The tag for the message. | 
Definition at line 704 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by FEAT::Global::SynchVectorTicket< VT_, VMT_ >::SynchVectorTicket(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::_apply(), FEAT::Global::AlgDofPartiMatrix< LocalMatrix_, Mirror_ >::_assemble_buffers(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_calc_shortest_edge(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_patch_halos(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), FEAT::Geometry::GlobalMaskedBoundaryFactory< ParentMesh_ >::_sync_bnd_masks(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_synchronize(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_synchronize(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), FEAT::Global::AlgDofPartiVector< LocalVector_, Mirror_ >::download(), FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), FEAT::Global::SynchMatrix< MT_, VMT_ >::init(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::init_numeric(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::init_symbolic(), isend(), FEAT::Assembly::StokesFBMAssembler< MeshType_ >::sync(), and FEAT::Global::AlgDofPartiMatrix< LocalMatrix_, Mirror_ >::upload_numeric().
| 
 | inline | 
| 
 | inline | 
| 
 | static | 
Move-assignment operator.
This operator moves the internal handle of the source communicator and sets the source communicator to a null communicator.
this must be a null communicator, as this operator will fire an assertion failure otherwise!other.| [in,out] | other | The source communicator that is to be moved. | 
| 
 | inline | 
Prints a message line to the standard output stream cout. 
| [in] | msg | The message that is to be written to cout. This function automatically appends a new-line after the message. | 
| [in] | root | The root process that should perform the print. | 
Definition at line 3106 of file dist.hpp.
References print().
| void FEAT::Dist::Comm::print | ( | std::ostream & | os, | 
| const String & | msg, | ||
| int | root = 0 | ||
| ) | const | 
Prints a message line to an output stream.
| [in] | os | The output stream to write to. Must be a valid stream on the root process. | 
| [in] | msg | The message that is to be written to os. This function automatically appends a new-line after the message. | 
| [in] | root | The root process that should perform the print. | 
Definition at line 782 of file dist.cpp.
References _rank, _size, and XASSERTM.
Referenced by FEAT::Solver::IterativeSolver< Vector_ >::_print_line(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::parse_args(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::parse_property_map(), and print().
| 
 | inline | 
Explicitly flushes cout. 
| [in] | root | The root process that should collect the messages and perform the print. | 
Definition at line 3160 of file dist.hpp.
References print_flush().
| void FEAT::Dist::Comm::print_flush | ( | std::ostream & | os, | 
| int | root = 0 | ||
| ) | const | 
Explicitly flushes the output stream.
| [in] | os | The output stream to write to. Must be a valid stream on the root process. | 
| [in] | root | The root process that should collect the messages and perform the print. | 
Definition at line 847 of file dist.cpp.
References _rank, _size, and XASSERTM.
Referenced by print_flush().
| 
 | inline | 
Returns the rank of this process in this communicator.
Definition at line 1494 of file dist.hpp.
References _rank.
Referenced by FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_calc_vertex_owners(), FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_scattered(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_single(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_patch_halos(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_init_edge_multiplicity(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_synchronize(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_synchronize(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), bcast_binarystream(), bcast_stringstream(), FEAT::Geometry::PartiIterative< ConformalMesh< Shape_, num_coords_, Coord_ > >::build_elems_at_rank(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::compile(), FEAT::Global::Gate< LocalVector_, Mirror_ >::get_num_global_dofs(), FEAT::Runtime::initialize(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_parent(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join_send(), FEAT::Control::Statistics::report(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::serialize_partitioning(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split_recv(), FEAT::PropertyMap::write(), and FEAT::Geometry::ExportVTK< Mesh_, cell_dim_ >::write().
| 
 | inline | 
Blocking Receive.
This function automatically deducts the datatype of the receive buffer (if possible).
| [in] | buffer | A transient pointer to the receive buffer for the operation. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
| [out] | status | A transient reference to the Status object that receives information about the receive operation. | 
Definition at line 1746 of file dist.hpp.
References recv().
| 
 | inline | 
Blocking Receive.
This function automatically deducts the datatype of the receive buffer (if possible). This function discards the Status object of the receive operation.
| [in] | buffer | A transient pointer to the receive buffer for the operation. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
Definition at line 1772 of file dist.hpp.
References recv().
| void FEAT::Dist::Comm::recv | ( | void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | source, | ||
| int | tag, | ||
| Status & | status | ||
| ) | const | 
Blocking Receive.
| [in] | buffer | A transient pointer to the receive buffer for the operation. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
| [out] | status | A transient reference to the Status object that receives information about the receive operation. | 
Definition at line 711 of file dist.cpp.
References comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Status::mpi_status().
Referenced by allprint(), and recv().
| 
 | inline | 
Blocking Receive.
This function discards the Status object of the receive operation.
| [in] | buffer | A transient pointer to the receive buffer for the operation. | 
| [in] | count | The size of the receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | source | The rank of the source process. | 
| [in] | tag | The tag for the message. | 
Definition at line 1717 of file dist.hpp.
References recv().
| 
 | inline | 
Blocking Reduce.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
| [in] | root | The rank of the root process that receives the reduction result. | 
Definition at line 2730 of file dist.hpp.
References reduce().
| void FEAT::Dist::Comm::reduce | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op, | ||
| int | root | ||
| ) | const | 
Blocking Reduce.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the reduction operation. | 
| [in] | root | The rank of the root process that receives the reduction result. | 
Definition at line 641 of file dist.cpp.
References _rank, comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by reduce().
| 
 | inline | 
Blocking Inclusive Scan.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | op | A reference to the Operation object representing the scan operation. | 
Definition at line 2972 of file dist.hpp.
References scan().
| void FEAT::Dist::Comm::scan | ( | const void * | sendbuf, | 
| void * | recvbuf, | ||
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| const Operation & | op | ||
| ) | const | 
Blocking Inclusive Scan.
sendbuf and recvbuf are allowed to be identical; in this case, the sendbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient reference to the send buffer for the operation. | 
| [out] | recvbuf | A transient reference to the receive buffer for the operation. | 
| [in] | count | The size of the send/receive buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send/receive buffer contents. | 
| [in] | op | A reference to the Operation object representing the scan operation. | 
Definition at line 667 of file dist.cpp.
References comm, FEAT::Dist::Datatype::dt, and FEAT::Dist::Operation::op.
Referenced by scan().
| 
 | inline | 
Blocking scatter.
This function automatically deducts the datatype of the send/receive buffer(s) (if possible).
sendbuf and recvbuf are allowed to be identical; in this case, the recvbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The size of the receive buffer in datatype objects. | 
| [in] | root | The rank of the root process that is scattering the data. | 
Definition at line 2191 of file dist.hpp.
References scatter().
| void FEAT::Dist::Comm::scatter | ( | const void * | sendbuf, | 
| std::size_t | sendcount, | ||
| const Datatype & | sendtype, | ||
| void * | recvbuf, | ||
| std::size_t | recvcount, | ||
| const Datatype & | recvtype, | ||
| int | root | ||
| ) | const | 
Blocking scatter.
sendbuf and recvbuf are allowed to be identical; in this case, the recvbuf argument of the MPI function call is set to MPI_IN_PLACE.| [in] | sendbuf | A transient pointer to the send buffer for the operation. | 
| [in] | sendcount | The number of datatype objects send to each process. | 
| [in] | sendtype | A reference to the Datatype object representing the send buffer contents. | 
| [out] | recvbuf | A transient pointer to the receive buffer for the operation. | 
| [in] | recvcount | The size of the receive buffer in datatype objects. | 
| [in] | recvtype | A reference to the Datatype object representing the receive buffer contents. | 
| [in] | root | The rank of the root process that is scattering the data. | 
Definition at line 571 of file dist.cpp.
References _rank, comm, and FEAT::Dist::Datatype::dt.
Referenced by scatter(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split(), and FEAT::Global::Muxer< LocalVector_, Mirror_ >::split_recv().
| 
 | static | 
| 
 | inline | 
Blocking Send.
This function automatically deducts the datatype of the send buffer (if possible).
| [in] | buffer | A transient pointer to the send buffer for the operation. | 
| [in] | count | The size of the send buffer in datatype objects. | 
| [in] | dest | The rank of the destination process. | 
| [in] | tag | The tag for the message. | 
Definition at line 1665 of file dist.hpp.
References send().
| void FEAT::Dist::Comm::send | ( | const void * | buffer, | 
| std::size_t | count, | ||
| const Datatype & | datatype, | ||
| int | dest, | ||
| int | tag = 0 | ||
| ) | const | 
Blocking Send.
| [in] | buffer | A transient pointer to the send buffer for the operation. | 
| [in] | count | The size of the send buffer in datatype objects. | 
| [in] | datatype | A reference to the Datatype object representing the send buffer contents. | 
| [in] | dest | The rank of the destination process. | 
| [in] | tag | The tag for the message. | 
Definition at line 699 of file dist.cpp.
References comm, and FEAT::Dist::Datatype::dt.
Referenced by allprint(), and send().
| 
 | inline | 
Returns the size of this communicator.
Definition at line 1506 of file dist.hpp.
References _size.
Referenced by FEAT::Geometry::VoxelMap::_compute_voxel_map(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_scattered(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_ancestry_single(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_single_layered(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_init_edge_multiplicity(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_synchronize(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_allgather(), FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::bytes(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::create_hierarchy(), FEAT::Global::Gate< LocalVector_, Mirror_ >::dot(), FEAT::Global::Gate< LocalVector_, Mirror_ >::get_num_global_dofs(), FEAT::Geometry::PartiParMETIS::get_sub_comm_size(), FEAT::Geometry::PartiZoltan::get_sub_comm_size(), FEAT::Solver::DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >::init_symbolic(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::is_child(), FEAT::Global::Splitter< LocalVector_, Mirror_ >::is_single(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::join_send(), FEAT::Global::Gate< LocalVector_, Mirror_ >::push(), FEAT::Control::Statistics::report(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::serialize_partitioning(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::set_desired_levels(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split(), FEAT::Global::Muxer< LocalVector_, Mirror_ >::split_recv(), FEAT::Assembly::FunctionIntegralInfo< DataType_, ValueType_, GradientType_, HessianType_ >::synchronize(), FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::used_elements(), and FEAT::Geometry::ExportVTK< Mesh_, cell_dim_ >::write().
| 
 | static | 
Returns a copy of the world communicator.
Definition at line 429 of file dist.cpp.
References Comm().
Referenced by FEAT::Geometry::MeshFileReader::add_mesh_file(), FEAT::Geometry::MeshFileReader::add_mesh_files(), FEAT::Statistics::get_formatted_solver_internals(), FEAT::Statistics::get_formatted_times(), FEAT::Runtime::initialize(), FEAT::PropertyMap::read(), FEAT::DistFileIO::read_common(), FEAT::DistFileIO::read_ordered(), FEAT::DistFileIO::read_sequence(), FEAT::Control::Statistics::report(), FEAT::PropertyMap::write(), FEAT::DistFileIO::write_ordered(), and FEAT::DistFileIO::write_sequence().
| 
 | protected | 
our rank
Definition at line 1358 of file dist.hpp.
Referenced by Comm(), allprint(), gather(), igather(), ireduce(), iscatter(), operator=(), print(), print_flush(), rank(), reduce(), and scatter().
| 
 | protected | 
the communicator size
Definition at line 1360 of file dist.hpp.
Referenced by Comm(), allprint(), comm_create_range_incl(), operator=(), print(), print_flush(), and size().
| MPI_Comm FEAT::Dist::Comm::comm | 
our MPI communicator handle
Definition at line 1353 of file dist.hpp.
Referenced by Comm(), ~Comm(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_create_multi_layers_scattered(), allgather(), allgatherv(), allreduce(), alltoall(), alltoallv(), barrier(), bcast(), comm_create_incl(), comm_create_range_incl(), comm_dup(), comm_split(), exscan(), gather(), iallgather(), iallreduce(), ialltoall(), ibarrier(), ibcast(), igather(), irecv(), ireduce(), is_null(), is_self(), is_world(), iscatter(), isend(), mpi_comm(), operator=(), recv(), reduce(), scan(), scatter(), and send().