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 () |
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 |
|
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 |