35#ifdef NEKTAR_USING_PETSC
48#ifdef NEKTAR_USING_PETSC
49 PetscInitializeNoArguments();
62#ifdef NEKTAR_USING_PETSC
96 return std::make_tuple(0, 0, 0);
118 [[maybe_unused]]
int count,
120 [[maybe_unused]]
int dest)
129 [[maybe_unused]]
int source)
137 [[maybe_unused]]
const void *sendbuf, [[maybe_unused]]
int sendcount,
138 [[maybe_unused]]
CommDataType sendtype, [[maybe_unused]]
int dest,
139 [[maybe_unused]]
void *recvbuf, [[maybe_unused]]
int recvcount,
140 [[maybe_unused]]
CommDataType recvtype, [[maybe_unused]]
int source)
148 [[maybe_unused]]
int count,
158 [[maybe_unused]]
int sendcount,
160 [[maybe_unused]]
void *recvbuf,
161 [[maybe_unused]]
int recvcount,
170 [[maybe_unused]]
const int *sendcounts,
171 [[maybe_unused]]
const int *senddispls,
173 [[maybe_unused]]
void *recvbuf,
174 [[maybe_unused]]
const int *recvcounts,
175 [[maybe_unused]]
const int *recvdispls,
184 [[maybe_unused]]
int sendcount,
186 [[maybe_unused]]
void *recvbuf,
187 [[maybe_unused]]
int recvcount,
196 [[maybe_unused]]
int sendcount,
198 [[maybe_unused]]
void *recvbuf,
199 [[maybe_unused]]
const int *recvcounts,
200 [[maybe_unused]]
const int *recvdispls,
209 [[maybe_unused]]
const int *recvcounts,
210 [[maybe_unused]]
const int *recvdispls,
219 [[maybe_unused]]
int count,
221 [[maybe_unused]]
int root)
230 [[maybe_unused]]
int recvcount,
232 [[maybe_unused]]
int root)
242 [[maybe_unused]]
int recvcount,
244 [[maybe_unused]]
int root)
253 [[maybe_unused]]
int indegree, [[maybe_unused]]
const int *sources,
254 [[maybe_unused]]
const int *sourceweights, [[maybe_unused]]
int reorder)
262 [[maybe_unused]]
const int *sendcounts,
263 [[maybe_unused]]
const int *senddispls,
265 [[maybe_unused]]
void *recvbuf,
266 [[maybe_unused]]
const int *recvcounts,
267 [[maybe_unused]]
const int *recvdispls,
276 [[maybe_unused]]
int count,
278 [[maybe_unused]]
int dest,
280 [[maybe_unused]]
int loc)
288 [[maybe_unused]]
int count,
290 [[maybe_unused]]
int dest,
292 [[maybe_unused]]
int loc)
300 [[maybe_unused]]
int count,
302 [[maybe_unused]]
int dest,
304 [[maybe_unused]]
int loc)
313 [[maybe_unused]]
int source,
315 [[maybe_unused]]
int loc)
323 [[maybe_unused]]
int count,
325 [[maybe_unused]]
int source,
327 [[maybe_unused]]
int loc)
350 return std::shared_ptr<CommRequest>(
new CommRequest);
357 [[maybe_unused]]
int pColumns,
358 [[maybe_unused]]
int pTime)
360 ASSERTL0(
false,
"Cannot split a serial process.");
371 return std::shared_ptr<Comm>();
376 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.
std::tuple< int, int, int > v_GetVersion() final
void v_AllGather(const void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
void v_AlltoAllv(const void *sendbuf, const int *sendcounts, const int *senddispls, CommDataType sendtype, void *recvbuf, const int *recvcounts, const int *recvdispls, CommDataType recvtype) final
void v_SendInit(const void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
CommSharedPtr v_CommCreateIf(int flag) final
void v_Scatter(const void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
void v_Bcast(void *buffer, int count, CommDataType dt, int root) final
CommRequestSharedPtr v_CreateRequest(int num) final
void v_Irecv(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
void v_AllGatherv(const void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, const int *recvcounts, const int *recvdispls, CommDataType recvtype) final
void v_DistGraphCreateAdjacent(int indegree, const int *sources, const int *sourceweights, int reorder) final
void v_AllReduce(void *buf, int count, CommDataType dt, enum ReduceOperator pOp) final
void v_AlltoAll(const void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
static CommSharedPtr create(int narg, char *arg[])
Creates an instance of this class.
void v_SplitComm(int pRows, int pColumns, int pTime) override
void v_RecvInit(void *buf, int count, CommDataType dt, int source, CommRequestSharedPtr request, int loc) final
void v_SendRecv(const void *sendbuf, int sendcount, CommDataType sendtype, int dest, void *recvbuf, int recvcount, CommDataType recvtype, int source) final
void v_StartAll(CommRequestSharedPtr request) final
void v_Send(const void *buf, int count, CommDataType dt, int dest) final
bool v_TreatAsRankZero() override
CommSerial(int argc, char *argv[])
NekDouble v_Wtime() final
static std::string className
Name of class.
void v_Isend(const void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
void v_Gather(const void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
bool v_IsSerial() override
void v_WaitAll(CommRequestSharedPtr request) final
void v_Irsend(const void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
void v_NeighborAlltoAllv(const void *sendbuf, const int *sendcounts, const int *senddispls, CommDataType sendtype, void *recvbuf, const int *recvcounts, const int *recvdispls, CommDataType recvtype) final
void v_Recv(void *buf, int count, CommDataType dt, int source) 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.