Nektar++
|
A global linear system. More...
#include <CommMpi.h>
Public Member Functions | |
CommMpi (int narg, char *arg[]) | |
virtual | ~CommMpi () |
MPI_Comm | GetComm () |
Public Member Functions inherited from Nektar::LibUtilities::Comm | |
Comm (int narg, char *arg[]) | |
virtual | ~Comm () |
void | Finalise () |
int | GetSize () |
Returns number of processes. | |
int | GetRank () |
const std::string & | GetType () const |
void | Block () |
Block execution until all processes reach this point. | |
void | Send (int pProc, Array< OneD, NekDouble > &pData) |
void | Send (int pProc, Array< OneD, int > &pData) |
void | Send (int pProc, std::vector< unsigned int > &pData) |
void | Recv (int pProc, Array< OneD, NekDouble > &pData) |
void | Recv (int pProc, Array< OneD, int > &pData) |
void | Recv (int pProc, std::vector< unsigned int > &pData) |
void | SendRecv (int pSendProc, Array< OneD, NekDouble > &pSendData, int pRecvProc, Array< OneD, NekDouble > &pRecvData) |
void | SendRecv (int pSendProc, Array< OneD, int > &pSendData, int pRecvProc, Array< OneD, int > &pRecvData) |
void | SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, NekDouble > &pSendData) |
void | SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, int > &pSendData) |
void | AllReduce (NekDouble &pData, enum ReduceOperator pOp) |
void | AllReduce (int &pData, enum ReduceOperator pOp) |
void | AllReduce (Array< OneD, NekDouble > &pData, enum ReduceOperator pOp) |
void | AllReduce (Array< OneD, int > &pData, enum ReduceOperator pOp) |
void | AllReduce (std::vector< unsigned int > &pData, enum ReduceOperator pOp) |
void | AlltoAll (Array< OneD, NekDouble > &pSendData, Array< OneD, NekDouble > &pRecvData) |
void | AlltoAll (Array< OneD, int > &pSendData, Array< OneD, int > &pRecvData) |
void | AlltoAllv (Array< OneD, NekDouble > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, NekDouble > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) |
void | AlltoAllv (Array< OneD, int > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, int > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) |
void | SplitComm (int pRows, int pColumns) |
Splits this communicator into a grid of size pRows*pColumns and creates row and column communicators. By default the communicator is a single row. | |
CommSharedPtr | GetRowComm () |
Retrieve the row communicator to which this process belongs. | |
CommSharedPtr | GetColumnComm () |
Retrieve the column communicator to which this process belongs. | |
bool | TreatAsRankZero (void) |
bool | RemoveExistingFiles (void) |
Static Public Member Functions | |
static CommSharedPtr | create (int narg, char *arg[]) |
Creates an instance of this class. |
Static Public Attributes | |
static std::string | className |
Name of class. |
Protected Member Functions | |
virtual void | v_Finalise () |
virtual int | v_GetRank () |
virtual void | v_Block () |
virtual bool | v_TreatAsRankZero (void) |
virtual void | v_Send (int pProc, Array< OneD, NekDouble > &pData) |
virtual void | v_Send (int pProc, Array< OneD, int > &pData) |
virtual void | v_Send (int pProc, std::vector< unsigned int > &pData) |
virtual void | v_Recv (int pProc, Array< OneD, NekDouble > &pData) |
virtual void | v_Recv (int pProc, Array< OneD, int > &pData) |
virtual void | v_Recv (int pProc, std::vector< unsigned int > &pData) |
virtual void | v_SendRecv (int pSendProc, Array< OneD, NekDouble > &pSendData, int pRecvProc, Array< OneD, NekDouble > &pRecvData) |
virtual void | v_SendRecv (int pSendProc, Array< OneD, int > &pSendData, int pRecvProc, Array< OneD, int > &pRecvData) |
virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, NekDouble > &pSendData) |
virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, int > &pSendData) |
virtual void | v_AllReduce (NekDouble &pData, enum ReduceOperator pOp) |
virtual void | v_AllReduce (int &pData, enum ReduceOperator pOp) |
virtual void | v_AllReduce (Array< OneD, NekDouble > &pData, enum ReduceOperator pOp) |
virtual void | v_AllReduce (Array< OneD, int > &pData, enum ReduceOperator pOp) |
virtual void | v_AllReduce (std::vector< unsigned int > &pData, enum ReduceOperator pOp) |
virtual void | v_AlltoAll (Array< OneD, NekDouble > &pSendData, Array< OneD, NekDouble > &pRecvData) |
virtual void | v_AlltoAll (Array< OneD, int > &pSendData, Array< OneD, int > &pRecvData) |
virtual void | v_AlltoAllv (Array< OneD, NekDouble > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, NekDouble > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) |
virtual void | v_AlltoAllv (Array< OneD, int > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, int > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) |
virtual void | v_SplitComm (int pRows, int pColumns) |
Protected Member Functions inherited from Nektar::LibUtilities::Comm | |
Comm () | |
virtual bool | v_RemoveExistingFiles (void) |
Private Member Functions | |
CommMpi (MPI_Comm pComm) |
Private Attributes | |
MPI_Comm | m_comm |
int | m_rank |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::LibUtilities::Comm | |
int | m_size |
Number of processes. | |
std::string | m_type |
Type of communication. | |
CommSharedPtr | m_commRow |
Row communicator. | |
CommSharedPtr | m_commColumn |
Column communicator. |
Nektar::LibUtilities::CommMpi::CommMpi | ( | int | narg, |
char * | arg[] | ||
) |
Definition at line 52 of file CommMpi.cpp.
References ASSERTL0, m_comm, m_rank, Nektar::LibUtilities::Comm::m_size, and Nektar::LibUtilities::Comm::m_type.
Referenced by v_SplitComm().
|
virtual |
Definition at line 90 of file CommMpi.cpp.
|
private |
Definition at line 76 of file CommMpi.cpp.
References m_comm, m_rank, Nektar::LibUtilities::Comm::m_size, and Nektar::LibUtilities::Comm::m_type.
|
inlinestatic |
MPI_Comm Nektar::LibUtilities::CommMpi::GetComm | ( | ) |
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 385 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 415 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 445 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 475 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 505 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 535 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), and m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 553 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), and m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 571 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 595 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 141 of file CommMpi.cpp.
References m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 108 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 117 of file CommMpi.cpp.
References m_rank.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 176 of file CommMpi.cpp.
References m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 221 of file CommMpi.cpp.
References m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 266 of file CommMpi.cpp.
References m_comm.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 150 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 195 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 240 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 285 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 312 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 338 of file CommMpi.cpp.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 361 of file CommMpi.cpp.
|
protectedvirtual |
Processes are considered as a grid of size pRows*pColumns. Comm objects are created corresponding to the rows and columns of this grid. The row and column to which this process belongs is stored in m_commRow and m_commColumn.
Implements Nektar::LibUtilities::Comm.
Definition at line 623 of file CommMpi.cpp.
References ASSERTL0, CommMpi(), m_comm, Nektar::LibUtilities::Comm::m_commColumn, Nektar::LibUtilities::Comm::m_commRow, m_rank, and Nektar::LibUtilities::Comm::m_size.
|
protectedvirtual |
Implements Nektar::LibUtilities::Comm.
Definition at line 125 of file CommMpi.cpp.
References m_rank.
|
static |
Name of class.
|
private |
Definition at line 132 of file CommMpi.h.
Referenced by CommMpi(), GetComm(), v_AllReduce(), v_AlltoAll(), v_AlltoAllv(), v_Block(), v_Recv(), v_Send(), v_SendRecv(), v_SendRecvReplace(), and v_SplitComm().
|
private |
Definition at line 133 of file CommMpi.h.
Referenced by CommMpi(), v_GetRank(), v_SplitComm(), and v_TreatAsRankZero().