Nektar++
|
Base communications class. More...
#include <Comm.h>
Public Member Functions | |
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) |
Protected Member Functions | |
Comm () | |
virtual void | v_Finalise ()=0 |
virtual int | v_GetRank ()=0 |
virtual void | v_Block ()=0 |
virtual void | v_Send (int pProc, Array< OneD, NekDouble > &pData)=0 |
virtual void | v_Send (int pProc, Array< OneD, int > &pData)=0 |
virtual void | v_Send (int pProc, std::vector< unsigned int > &pData)=0 |
virtual void | v_Recv (int pProc, Array< OneD, NekDouble > &pData)=0 |
virtual void | v_Recv (int pProc, Array< OneD, int > &pData)=0 |
virtual void | v_Recv (int pProc, std::vector< unsigned int > &pData)=0 |
virtual void | v_SendRecv (int pSendProc, Array< OneD, NekDouble > &pSendData, int pRecvProc, Array< OneD, NekDouble > &pRecvData)=0 |
virtual void | v_SendRecv (int pSendProc, Array< OneD, int > &pSendData, int pRecvProc, Array< OneD, int > &pRecvData)=0 |
virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, NekDouble > &pSendData)=0 |
virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, int > &pSendData)=0 |
virtual void | v_AllReduce (NekDouble &pData, enum ReduceOperator pOp)=0 |
virtual void | v_AllReduce (int &pData, enum ReduceOperator pOp)=0 |
virtual void | v_AllReduce (Array< OneD, NekDouble > &pData, enum ReduceOperator pOp)=0 |
virtual void | v_AllReduce (Array< OneD, int > &pData, enum ReduceOperator pOp)=0 |
virtual void | v_AllReduce (std::vector< unsigned int > &pData, enum ReduceOperator pOp)=0 |
virtual void | v_AlltoAll (Array< OneD, NekDouble > &pSendData, Array< OneD, NekDouble > &pRecvData)=0 |
virtual void | v_AlltoAll (Array< OneD, int > &pSendData, Array< OneD, int > &pRecvData)=0 |
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)=0 |
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)=0 |
virtual void | v_SplitComm (int pRows, int pColumns)=0 |
virtual bool | v_TreatAsRankZero (void)=0 |
virtual bool | v_RemoveExistingFiles (void) |
Protected Attributes | |
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::Comm::Comm | ( | int | narg, |
char * | arg[] | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 386 of file Comm.h.
References v_AlltoAll().
|
inline |
Definition at line 395 of file Comm.h.
References v_AlltoAll().
|
inline |
Definition at line 404 of file Comm.h.
References v_AlltoAllv().
|
inline |
Definition at line 417 of file Comm.h.
References v_AlltoAllv().
|
inline |
|
inline |
|
inline |
Retrieve the column communicator to which this process belongs.
Definition at line 459 of file Comm.h.
References m_commColumn.
|
inline |
|
inline |
|
inline |
Returns number of processes.
Definition at line 215 of file Comm.h.
References m_size.
Referenced by Nektar::LibUtilities::CommMpi::v_AllReduce(), and Nektar::LibUtilities::CommMpi::v_AlltoAll().
|
inline |
|
inline |
|
inline |
Definition at line 476 of file Comm.h.
References v_RemoveExistingFiles().
|
inline |
|
inline |
Definition at line 296 of file Comm.h.
References v_SendRecv().
|
inline |
Definition at line 308 of file Comm.h.
References v_SendRecv().
|
inline |
Definition at line 319 of file Comm.h.
References v_SendRecvReplace().
|
inline |
Definition at line 330 of file Comm.h.
References v_SendRecvReplace().
|
inline |
Splits this communicator into a grid of size pRows*pColumns and creates row and column communicators. By default the communicator is a single row.
Definition at line 433 of file Comm.h.
References v_SplitComm().
|
inline |
Definition at line 471 of file Comm.h.
References v_TreatAsRankZero().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by AllReduce().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by AlltoAll().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by AlltoAllv().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by Block().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by Finalise().
|
protectedpure virtual |
Implemented in Nektar::Utilities::FieldConvertComm, Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by GetRank().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by Recv().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedvirtual |
Reimplemented in Nektar::Utilities::FieldConvertComm.
Definition at line 59 of file Comm.cpp.
Referenced by RemoveExistingFiles().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by Send().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by SendRecv().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by SendRecvReplace().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
|
protectedpure virtual |
Implemented in Nektar::Utilities::FieldConvertComm, Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by SplitComm().
|
protectedpure virtual |
Implemented in Nektar::Utilities::FieldConvertComm, Nektar::LibUtilities::CommMpi, and Nektar::LibUtilities::CommSerial.
Referenced by TreatAsRankZero().
|
protected |
Column communicator.
Definition at line 145 of file Comm.h.
Referenced by GetColumnComm(), and Nektar::LibUtilities::CommMpi::v_SplitComm().
|
protected |
Row communicator.
Definition at line 144 of file Comm.h.
Referenced by GetRowComm(), and Nektar::LibUtilities::CommMpi::v_SplitComm().
|
protected |
Number of processes.
Definition at line 142 of file Comm.h.
Referenced by Nektar::LibUtilities::CommMpi::CommMpi(), Nektar::LibUtilities::CommSerial::CommSerial(), GetSize(), and Nektar::LibUtilities::CommMpi::v_SplitComm().
|
protected |
Type of communication.
Definition at line 143 of file Comm.h.
Referenced by Nektar::LibUtilities::CommMpi::CommMpi(), Nektar::LibUtilities::CommSerial::CommSerial(), and GetType().