Class containing wrappers to MPI. More...
#include <Communicator.h>

Classes | |
| struct | ConstData |
| Const version of Communicator::Data See Communicator::Data documentation. More... | |
| struct | Data |
| Structure defining a buffer for MPI. More... | |
| class | Request |
| Wrapper class for MPI_Request. More... | |
| class | Status |
| Wrapper class for MPI_Status. More... | |
Public Member Functions | |
| Communicator () | |
| Default constructor. More... | |
| Communicator (const Communicator &) | |
| Copy constructor. More... | |
| virtual | ~Communicator () |
| Destructor. More... | |
| void | Abort (int code) |
| Wrapper to MPI_Abort. More... | |
| void | Allgather (ConstData in, Data out) |
| Wrapper for MPI_Allgather (data struct) More... | |
| template<class T , class S > | |
| void | Allgather (const T *sendbuf, int sendcount, S *recvbuf, int recvcount) |
| Wrapper for MPI_Allgatherv (pointer) More... | |
| template<class T , class S > | |
| void | Allgather (const T &sendbuf, S &recvbuf) |
| Wrapper for MPI_Allgatherv (reference) More... | |
| void | Allgatherv (ConstData in, Data out, const int *, const int *) |
| Wrapper for MPI_Allgatherv (data struct) More... | |
| template<class T , class S > | |
| void | Allgatherv (const T *sendbuf, int sendcount, S *recvbuf, const int *recvcounts, const int *displs) |
| Wrapper for MPI_Allgatherv (pointer) More... | |
| template<class T , class S > | |
| void | Allgatherv (const T &sendbuf, S &recvbuf, const int *recvcounts, const int *displs) |
| Wrapper for MPI_Allgatherv (reference) More... | |
| void | Barrier () const |
| Wrapper to MPI_Barrier. More... | |
| void | Bcast (Data, int) |
| Wrapper for MPI_Bcast (data struct) More... | |
| template<class T > | |
| void | Bcast (T *buf, int count, int root) |
| Wrapper for MPI_Bcast (pointer) More... | |
| template<class T > | |
| void | Bcast (T &buf, int root) |
| Wrapper for MPI_Bcast (reference) More... | |
| MPI_Comm & | Get_comm () |
| Reference to MPI communicator. More... | |
| int | Get_rank () const |
| Obtain the rank of the present process. More... | |
| int | Get_size () const |
| Obtain the number of processes. More... | |
| Request | Isend (ConstData, int, int) |
| Wrapper for MPI_Isend (data struct) More... | |
| template<class T > | |
| Request | Isend (const T *buf, int count, int source, int tag) |
| Wrapper for MPI_Isend (pointer) More... | |
| template<class T > | |
| Request | Isend (const T &buf, int source, int tag) |
| Wrapper for MPI_Isend (reference) More... | |
| void | Max (Data) |
| Wrapper for MPI_Allreduce with MPI_MAX (data struct) More... | |
| template<class T > | |
| void | Max (T *buf, int count) |
| Wrapper for MPI_Allreduce with MPI_MAX (pointer) More... | |
| template<class T > | |
| void | Max (T &buf) |
| Wrapper for MPI_Allreduce with MPI_MAX (reference) More... | |
| void | Min (Data) |
| Wrapper for MPI_Allreduce with MPI_MIN (data struct) More... | |
| template<class T > | |
| void | Min (T *buf, int count) |
| Wrapper for MPI_Allreduce with MPI_MIN (pointer) More... | |
| template<class T > | |
| void | Min (T &buf) |
| Wrapper for MPI_Allreduce with MPI_MIN (reference) More... | |
| Communicator & | operator= (const Communicator &) |
| Assignment operator. More... | |
| void | Prod (Data) |
| Wrapper for MPI_Allreduce with MPI_PROD (data struct) More... | |
| template<class T > | |
| void | Prod (T *buf, int count) |
| Wrapper for MPI_Allreduce with MPI_PROD (pointer) More... | |
| template<class T > | |
| void | Prod (T &buf) |
| Wrapper for MPI_Allreduce with MPI_PROD (reference) More... | |
| void | Recv (Data, int, int, Status &s=StatusIgnore) |
| Wrapper for MPI_Recv (data struct) More... | |
| template<class T > | |
| void | Recv (T *buf, int count, int source, int tag, Status &s=StatusIgnore) |
| Wrapper for MPI_Recv (pointer) More... | |
| template<class T > | |
| void | Recv (T &buf, int source, int tag, Status &s=StatusIgnore) |
| Wrapper for MPI_Recv (reference) More... | |
| void | Set_comm (MPI_Comm comm) |
| Set from a real MPI communicator. More... | |
| void | Set_comm (void *comm) |
| Set from a pointer to a real MPI communicator (C). More... | |
| void | Set_fcomm (void *comm) |
| Set from a pointer to a real MPI communicator (FORTRAN). More... | |
| void | Split (int, int, Communicator &) const |
| Wrapper to MPI_Comm_split. More... | |
| void | Sum (Data) |
| Wrapper for MPI_Allreduce with MPI_SUM (data struct) More... | |
| template<class T > | |
| void | Sum (T *buf, int count) |
| Wrapper for MPI_Allreduce with MPI_SUM (pointer) More... | |
| template<class T > | |
| void | Sum (T &buf) |
| Wrapper for MPI_Allreduce with MPI_SUM (reference) More... | |
Static Public Member Functions | |
| static bool | initialized () |
| Tests if MPI library is initialized. More... | |
Static Public Attributes | |
| static Status | StatusIgnore |
| Special status used when status should be ignored. More... | |
Private Member Functions | |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
| template<> | |
| MPI_Datatype | getMPIType () |
Static Private Member Functions | |
| template<class T > | |
| static MPI_Datatype | getMPIType () |
| Function returning the MPI type. More... | |
Private Attributes | |
| MPI_Comm | communicator |
| Communicator. More... | |
Class containing wrappers to MPI.
All the MPI related stuff is relegated here.
| PLMD::Communicator::Communicator | ( | ) |
Default constructor.
| PLMD::Communicator::Communicator | ( | const Communicator & | pc | ) |
Copy constructor.
It effectively "clones" the communicator, providing a new one acting on the same group
|
virtual |
Destructor.
| void PLMD::Communicator::Abort | ( | int | code | ) |
Wrapper to MPI_Abort.
| code | Error code |
Wrapper for MPI_Allgather (data struct)
|
inline |
Wrapper for MPI_Allgatherv (pointer)
|
inline |
Wrapper for MPI_Allgatherv (reference)
| void PLMD::Communicator::Allgatherv | ( | ConstData | in, |
| Data | out, | ||
| const int * | recvcounts, | ||
| const int * | displs | ||
| ) |
Wrapper for MPI_Allgatherv (data struct)
|
inline |
Wrapper for MPI_Allgatherv (pointer)
|
inline |
Wrapper for MPI_Allgatherv (reference)
| void PLMD::Communicator::Barrier | ( | ) | const |
Wrapper to MPI_Barrier.
| void PLMD::Communicator::Bcast | ( | Data | data, |
| int | root | ||
| ) |
Wrapper for MPI_Bcast (data struct)
|
inline |
Wrapper for MPI_Bcast (pointer)
|
inline |
Wrapper for MPI_Bcast (reference)
| MPI_Comm & PLMD::Communicator::Get_comm | ( | ) |
Reference to MPI communicator.
| int PLMD::Communicator::Get_rank | ( | ) | const |
Obtain the rank of the present process.
| int PLMD::Communicator::Get_size | ( | ) | const |
Obtain the number of processes.
|
staticprivate |
Function returning the MPI type.
You can use it to access to the MPI type of a C++ type, e.g. MPI_Datatype type=getMPIType<double>();
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
static |
Tests if MPI library is initialized.
| Communicator::Request PLMD::Communicator::Isend | ( | ConstData | data, |
| int | source, | ||
| int | tag | ||
| ) |
Wrapper for MPI_Isend (data struct)
|
inline |
Wrapper for MPI_Isend (pointer)
|
inline |
Wrapper for MPI_Isend (reference)
| void PLMD::Communicator::Max | ( | Data | data | ) |
Wrapper for MPI_Allreduce with MPI_MAX (data struct)
|
inline |
Wrapper for MPI_Allreduce with MPI_MAX (pointer)
|
inline |
Wrapper for MPI_Allreduce with MPI_MAX (reference)
| void PLMD::Communicator::Min | ( | Data | data | ) |
Wrapper for MPI_Allreduce with MPI_MIN (data struct)
|
inline |
Wrapper for MPI_Allreduce with MPI_MIN (pointer)
|
inline |
Wrapper for MPI_Allreduce with MPI_MIN (reference)
| Communicator & PLMD::Communicator::operator= | ( | const Communicator & | pc | ) |
Assignment operator.
It effectively "clones" the communicator, providing a new one acting on the same group
| void PLMD::Communicator::Prod | ( | Data | data | ) |
Wrapper for MPI_Allreduce with MPI_PROD (data struct)
|
inline |
Wrapper for MPI_Allreduce with MPI_PROD (pointer)
|
inline |
Wrapper for MPI_Allreduce with MPI_PROD (reference)
| void PLMD::Communicator::Recv | ( | Data | data, |
| int | source, | ||
| int | tag, | ||
| Status & | s = StatusIgnore |
||
| ) |
Wrapper for MPI_Recv (data struct)
|
inline |
Wrapper for MPI_Recv (pointer)
|
inline |
Wrapper for MPI_Recv (reference)
| void PLMD::Communicator::Set_comm | ( | MPI_Comm | comm | ) |
Set from a real MPI communicator.
| comm | MPI communicator |
| void PLMD::Communicator::Set_comm | ( | void * | comm | ) |
Set from a pointer to a real MPI communicator (C).
| comm | Pointer to a C MPI communicator |
| void PLMD::Communicator::Set_fcomm | ( | void * | comm | ) |
Set from a pointer to a real MPI communicator (FORTRAN).
| comm | Pointer to a FORTRAN MPI communicator (INTEGER) |
| void PLMD::Communicator::Split | ( | int | color, |
| int | key, | ||
| Communicator & | pc | ||
| ) | const |
Wrapper to MPI_Comm_split.
| void PLMD::Communicator::Sum | ( | Data | data | ) |
Wrapper for MPI_Allreduce with MPI_SUM (data struct)
|
inline |
Wrapper for MPI_Allreduce with MPI_SUM (pointer)
|
inline |
Wrapper for MPI_Allreduce with MPI_SUM (reference)
|
private |
|
static |
Special status used when status should be ignored.
E.g. Recv(a,0,1,Communicator::StatusIgnore); Notice that this is the default for Recv, so this is equivalent to Recv(a,0,1);
Hosted by GitHub
|
1.8.14
|