34 #ifndef NEKTAR_LIB_UTILITIES_COMMMPI_H
35 #define NEKTAR_LIB_UTILITIES_COMMMPI_H
52 namespace LibUtilities
112 explicit CommMpi(MPI_Comm pComm);
117 virtual
double v_Wtime() final;
125 int dest,
void *recvbuf,
int recvcount,
128 int pSendProc,
int pRecvProc) final;
132 void *recvbuf,
int recvcount,
134 virtual
void v_AlltoAllv(
void *sendbuf,
int sendcounts[],
int sensdispls[],
136 int recvcounts[],
int rdispls[],
138 virtual
void v_AllGather(
void *sendbuf,
int sendcount,
143 int recvcounts[],
int rdispls[],
145 virtual
void v_AllGatherv(
void *recvbuf,
int recvcounts[],
int rdispls[],
151 Array<
OneD,
unsigned long long> &ans) final;
161 const
int sourceweights[],
165 void *recvbuf,
int recvcounts[],
180 virtual
void v_SplitComm(
int pRows,
int pColumns) override;
#define LIB_UTILITIES_EXPORT
Base communications class.
virtual void v_Block() final
virtual void v_WaitAll(CommRequestSharedPtr request) final
virtual bool v_IsSerial() final
virtual void v_AlltoAll(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
virtual CommRequestSharedPtr v_CreateRequest(int num) final
CommMpi(int narg, char *arg[])
virtual void v_DistGraphCreateAdjacent(int indegree, const int sources[], const int sourceweights[], int reorder) final
virtual void v_Bcast(void *buffer, int count, CommDataType dt, int root) final
virtual void v_AllGatherv(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual void v_SendRecvReplace(void *buf, int count, CommDataType dt, int pSendProc, int pRecvProc) final
virtual CommSharedPtr v_CommCreateIf(int flag) final
virtual std::pair< CommSharedPtr, CommSharedPtr > v_SplitCommNode() final
virtual void v_SendRecv(void *sendbuf, int sendcount, CommDataType sendtype, int dest, void *recvbuf, int recvcount, CommDataType recvtype, int source) final
virtual double v_Wtime() final
virtual void v_NeighborAlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual void v_AllGather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
virtual void v_Recv(void *buf, int count, CommDataType dt, int source) final
virtual void v_StartAll(CommRequestSharedPtr request) final
virtual void v_AllReduce(void *buf, int count, CommDataType dt, enum ReduceOperator pOp) final
virtual void v_Finalise() override
virtual void v_Irecv(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
virtual void v_Irsend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
virtual int v_GetRank() final
virtual void v_Exscan(Array< OneD, unsigned long long > &pData, enum ReduceOperator pOp, Array< OneD, unsigned long long > &ans) final
virtual void v_Gather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
static std::string className
Name of class.
virtual void v_RecvInit(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
static CommSharedPtr create(int narg, char *arg[])
Creates an instance of this class.
virtual void v_SplitComm(int pRows, int pColumns) override
virtual void v_AlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual bool v_TreatAsRankZero() final
virtual void v_Send(void *buf, int count, CommDataType dt, int dest) final
virtual void v_Scatter(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
virtual ~CommMpi() override
virtual std::tuple< int, int, int > v_GetVersion() final
virtual void v_SendInit(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) 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() 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.