35 #include <boost/core/ignore_unused.hpp>
37 #ifdef NEKTAR_USING_PETSC
45 namespace LibUtilities
52 #ifdef NEKTAR_USING_PETSC
53 PetscInitializeNoArguments();
66 #ifdef NEKTAR_USING_PETSC
97 return std::make_tuple(0, 0, 0);
120 boost::ignore_unused(buf, count, dt, dest);
128 boost::ignore_unused(buf, count, dt, source);
135 int dest,
void *recvbuf,
int recvcount,
138 boost::ignore_unused(sendbuf, sendcount, sendtype, dest, recvbuf, recvcount,
146 int pSendProc,
int pRecvProc)
148 boost::ignore_unused(buf, count, dt, pSendProc, pRecvProc);
157 boost::ignore_unused(buf, count, dt, pOp);
166 boost::ignore_unused(sendbuf, sendcount, sendtype, recvbuf, recvcount,
175 int recvcounts[],
int rdispls[],
178 boost::ignore_unused(sendbuf, sendcounts, sdispls, sendtype, recvbuf,
179 recvcounts, rdispls, recvtype);
189 boost::ignore_unused(sendbuf, sendcount, sendtype, recvbuf, recvcount,
195 int recvcounts[],
int rdispls[],
198 boost::ignore_unused(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
205 boost::ignore_unused(recvbuf, recvcounts, rdispls, recvtype);
210 boost::ignore_unused(
buffer, count, dt, root);
217 boost::ignore_unused(pData, pOp, ans);
224 boost::ignore_unused(recvcount, recvtype, root);
232 boost::ignore_unused(recvcount, recvtype, root);
237 const int sourceweights[],
240 boost::ignore_unused(indegree, sources, sourceweights, reorder);
245 void *recvbuf,
int recvcounts[],
248 boost::ignore_unused(sendbuf, sendcounts, senddispls, sendtype, recvbuf,
249 recvcounts, rdispls, recvtype);
255 boost::ignore_unused(buf, count, dt, dest, request,
loc);
261 boost::ignore_unused(buf, count, dt, dest, request,
loc);
267 boost::ignore_unused(buf, count, dt, source, request,
loc);
273 boost::ignore_unused(buf, count, dt, source, request,
loc);
278 boost::ignore_unused(request);
283 boost::ignore_unused(request);
288 boost::ignore_unused(num);
289 return std::shared_ptr<CommRequest>(
new CommRequest);
297 boost::ignore_unused(pRows, pColumns);
298 ASSERTL0(
false,
"Cannot split a serial process.");
309 return std::shared_ptr<Comm>();
314 return shared_from_this();
#define ASSERTL0(condition, msg)
Base communications class.
int m_size
Number of processes.
std::string m_type
Type of communication.
Class for communicator request type.
virtual std::tuple< int, int, int > v_GetVersion() final
virtual void v_SendRecvReplace(void *buf, int count, CommDataType dt, int pSendProc, int pRecvProc) final
virtual void v_Gather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
virtual CommSharedPtr v_CommCreateIf(int flag) final
virtual void v_SendRecv(void *sendbuf, int sendcount, CommDataType sendtype, int dest, void *recvbuf, int recvcount, CommDataType recvtype, int source) final
virtual void v_Bcast(void *buffer, int count, CommDataType dt, int root) final
virtual CommRequestSharedPtr v_CreateRequest(int num) final
virtual void v_Irecv(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
virtual void v_AllReduce(void *buf, int count, CommDataType dt, enum ReduceOperator pOp) final
static CommSharedPtr create(int narg, char *arg[])
Creates an instance of this class.
virtual void v_Exscan(Array< OneD, unsigned long long > &pData, const enum ReduceOperator pOp, Array< OneD, unsigned long long > &ans) final
virtual void v_SplitComm(int pRows, int pColumns) override
virtual void v_RecvInit(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
virtual void v_AlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual void v_Finalise() final
virtual void v_StartAll(CommRequestSharedPtr request) final
virtual bool v_TreatAsRankZero() override
CommSerial(int argc, char *argv[])
virtual NekDouble v_Wtime() final
static std::string className
Name of class.
virtual void v_NeighborAlltoAllv(void *sendbuf, int sendcounts[], int sdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual void v_Irsend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
virtual void v_Block() final
virtual void v_Send(void *buf, int count, CommDataType dt, int dest) final
virtual ~CommSerial() override
virtual bool v_IsSerial() override
virtual void v_WaitAll(CommRequestSharedPtr request) final
virtual void v_AllGatherv(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
virtual void v_AlltoAll(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
virtual void v_Scatter(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
virtual void v_AllGather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
virtual void v_DistGraphCreateAdjacent(int indegree, const int sources[], const int sourceweights[], int reorder) final
virtual void v_Recv(void *buf, int count, CommDataType dt, int source) final
virtual int v_GetRank() override
virtual void v_SendInit(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
unsigned int CommDataType
std::shared_ptr< CommRequest > CommRequestSharedPtr
CommFactory & GetCommFactory()
ReduceOperator
Type of operation to perform in AllReduce.
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
int CommDataTypeGetSize(CommDataType dt)
Return the size in bytes of a data type dt.
The above copyright notice and this permission notice shall be included.