34 #ifndef NEKTAR_LIB_UTILITIES_COMMMPI_H
35 #define NEKTAR_LIB_UTILITIES_COMMMPI_H
52 namespace LibUtilities
113 explicit CommMpi(MPI_Comm pComm);
117 virtual
void v_Block() override final;
118 virtual
double v_Wtime() override final;
121 virtual std::tuple<
int,
int,
int>
v_GetVersion() override final;
123 int dest) override final;
125 int source) override final;
127 int dest,
void *recvbuf,
int recvcount,
130 int pSendProc,
int pRecvProc) override final;
134 void *recvbuf,
int recvcount,
136 virtual
void v_AlltoAllv(
void *sendbuf,
int sendcounts[],
int sensdispls[],
138 int recvcounts[],
int rdispls[],
140 virtual
void v_AllGather(
void *sendbuf,
int sendcount,
146 int recvcounts[],
int rdispls[],
148 virtual
void v_AllGatherv(
void *recvbuf,
int recvcounts[],
int rdispls[],
151 int root) override final;
154 Array<
OneD,
unsigned long long> &ans) override final;
158 int root) override final;
161 int root) override final;
164 const
int sourceweights[],
165 int reorder) override final;
168 void *recvbuf,
int recvcounts[],
177 int loc) override final;
182 int loc) override final;
187 virtual
void v_SplitComm(
int pRows,
int pColumns,
int pTime) override;
#define LIB_UTILITIES_EXPORT
Base communications class.
virtual void v_AllGather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) override final
virtual void v_WaitAll(CommRequestSharedPtr request) override final
CommMpi(int narg, char *arg[])
virtual std::pair< CommSharedPtr, CommSharedPtr > v_SplitCommNode() override final
virtual void v_Isend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) override final
virtual std::tuple< int, int, int > v_GetVersion() override final
virtual void v_DistGraphCreateAdjacent(int indegree, const int sources[], const int sourceweights[], int reorder) override final
virtual void v_Gather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) override final
virtual CommSharedPtr v_CommCreateIf(int flag) override final
virtual void v_AlltoAll(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) override final
virtual void v_Exscan(Array< OneD, unsigned long long > &pData, enum ReduceOperator pOp, Array< OneD, unsigned long long > &ans) override final
virtual void v_AlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) override final
virtual bool v_TreatAsRankZero() override final
virtual void v_Send(void *buf, int count, CommDataType dt, int dest) override final
virtual void v_SendRecv(void *sendbuf, int sendcount, CommDataType sendtype, int dest, void *recvbuf, int recvcount, CommDataType recvtype, int source) override final
virtual void v_Irecv(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) override final
virtual void v_Finalise() override
virtual void v_AllGatherv(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) override final
virtual void v_AllReduce(void *buf, int count, CommDataType dt, enum ReduceOperator pOp) override final
virtual void v_SendInit(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) override final
virtual CommRequestSharedPtr v_CreateRequest(int num) override final
virtual int v_GetRank() override final
static std::string className
Name of class.
static CommSharedPtr create(int narg, char *arg[])
Creates an instance of this class.
virtual double v_Wtime() override final
virtual void v_RecvInit(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) override final
virtual void v_Block() override final
virtual void v_SendRecvReplace(void *buf, int count, CommDataType dt, int pSendProc, int pRecvProc) override final
virtual void v_Bcast(void *buffer, int count, CommDataType dt, int root) override final
virtual void v_StartAll(CommRequestSharedPtr request) override final
virtual void v_SplitComm(int pRows, int pColumns, int pTime) override
virtual void v_Irsend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) override final
virtual ~CommMpi() override
virtual void v_Recv(void *buf, int count, CommDataType dt, int source) override final
virtual void v_NeighborAlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) override final
virtual void v_Scatter(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) override final
virtual bool v_IsSerial() override final
Class for communicator request type.
Class for communicator request type.
CommRequestMpi(int num)
Creates an instance of this class.
Array< OneD, MPI_Request > m_request
MPI_Request * GetRequest(int i)
~CommRequestMpi() override final=default
Default destructor.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
unsigned int CommDataType
std::shared_ptr< CommMpi > CommMpiSharedPtr
Pointer to a Communicator object.
std::shared_ptr< CommRequest > CommRequestSharedPtr
std::shared_ptr< CommRequestMpi > CommRequestMpiSharedPtr
ReduceOperator
Type of operation to perform in AllReduce.
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
The above copyright notice and this permission notice shall be included.