|
TRIQS/mpi 1.3.0
C++ interface to MPI
|
#include <mpi/communicator.hpp>
C++ wrapper around MPI_Comm that is a result of the mpi::communicator::split_shared operation.
In the plain MPI C API it is not distinguishable whether an MPI_Comm is local to a shared memory island or not. Thus we introduce an extra type for that whose only purpose is to make that distinction on the type-level to prevent wrong usage of the shared memory APIs.
Definition at line 216 of file communicator.hpp.
Public Member Functions | |
| shared_communicator () | |
| Construct a shared communicator with MPI_COMM_NULL. | |
| communicator ()=default | |
| Construct a communicator with MPI_COMM_WORLD. | |
| communicator (MPI_Comm c) | |
| Construct a communicator with a given MPI_Comm object. | |
| Public Member Functions inherited from mpi::communicator | |
| communicator ()=default | |
| Construct a communicator with MPI_COMM_WORLD. | |
| communicator (MPI_Comm c) | |
| Construct a communicator with a given MPI_Comm object. | |
| void | abort (int error_code) const |
| If mpi::has_env is true, MPI_Abort is called with the given error code, otherwise it calls std::abort. | |
| void | barrier (long poll_msec=1) const |
| Barrier synchronization. | |
| communicator | duplicate () const |
| Duplicate the communicator. | |
| void | free () |
| Free the communicator. | |
| MPI_Comm | get () const noexcept |
| Get the wrapped MPI_Comm object. | |
| bool | is_null () const noexcept |
| Check if the contained MPI_Comm is MPI_COMM_NULL. | |
| int | rank () const |
| Get the rank of the calling process in the communicator. | |
| int | size () const |
| Get the size of the communicator. | |
| communicator | split (int color, int key=0) const |
| Split the communicator into disjoint subgroups. | |
| shared_communicator | split_shared (int split_type=MPI_COMM_TYPE_SHARED, int key=0) const |
| Partition the communicator into subcommunicators according to their type. | |
|
inline |
Construct a communicator with a given MPI_Comm object.
The MPI_Comm object is copied without calling MPI_Comm_dup.
| c | MPI_Comm object to wrap. |
Definition at line 58 of file communicator.hpp.