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);
119 [[maybe_unused]]
int dest)
128 [[maybe_unused]]
int source)
136 [[maybe_unused]]
void *sendbuf, [[maybe_unused]]
int sendcount,
137 [[maybe_unused]]
CommDataType sendtype, [[maybe_unused]]
int dest,
138 [[maybe_unused]]
void *recvbuf, [[maybe_unused]]
int recvcount,
139 [[maybe_unused]]
CommDataType recvtype, [[maybe_unused]]
int source)
147 [[maybe_unused]]
int count,
157 [[maybe_unused]]
int sendcount,
159 [[maybe_unused]]
void *recvbuf,
160 [[maybe_unused]]
int recvcount,
169 [[maybe_unused]]
void *sendbuf, [[maybe_unused]]
int sendcounts[],
170 [[maybe_unused]]
int sdispls[], [[maybe_unused]]
CommDataType sendtype,
171 [[maybe_unused]]
void *recvbuf, [[maybe_unused]]
int recvcounts[],
172 [[maybe_unused]]
int rdispls[], [[maybe_unused]]
CommDataType recvtype)
180 [[maybe_unused]]
int sendcount,
182 [[maybe_unused]]
void *recvbuf,
183 [[maybe_unused]]
int recvcount,
192 [[maybe_unused]]
int sendcount,
194 [[maybe_unused]]
void *recvbuf,
195 [[maybe_unused]]
int recvcounts[],
196 [[maybe_unused]]
int rdispls[],
205 [[maybe_unused]]
int recvcounts[],
206 [[maybe_unused]]
int rdispls[],
215 [[maybe_unused]]
int count,
217 [[maybe_unused]]
int root)
225 void *recvbuf, [[maybe_unused]]
int recvcount,
227 [[maybe_unused]]
int root)
236 void *recvbuf, [[maybe_unused]]
int recvcount,
238 [[maybe_unused]]
int root)
247 [[maybe_unused]]
int indegree, [[maybe_unused]]
const int sources[],
248 [[maybe_unused]]
const int sourceweights[], [[maybe_unused]]
int reorder)
256 [[maybe_unused]]
void *sendbuf, [[maybe_unused]]
int sendcounts[],
257 [[maybe_unused]]
int senddispls[], [[maybe_unused]]
CommDataType sendtype,
258 [[maybe_unused]]
void *recvbuf, [[maybe_unused]]
int recvcounts[],
259 [[maybe_unused]]
int rdispls[], [[maybe_unused]]
CommDataType recvtype)
267 [[maybe_unused]]
int count,
269 [[maybe_unused]]
int dest,
271 [[maybe_unused]]
int loc)
280 [[maybe_unused]]
int dest,
282 [[maybe_unused]]
int loc)
290 [[maybe_unused]]
int count,
292 [[maybe_unused]]
int dest,
294 [[maybe_unused]]
int loc)
303 [[maybe_unused]]
int source,
305 [[maybe_unused]]
int loc)
313 [[maybe_unused]]
int count,
315 [[maybe_unused]]
int source,
317 [[maybe_unused]]
int loc)
340 return std::shared_ptr<CommRequest>(
new CommRequest);
347 [[maybe_unused]]
int pColumns,
348 [[maybe_unused]]
int pTime)
350 ASSERTL0(
false,
"Cannot split a serial process.");
361 return std::shared_ptr<Comm>();
366 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_Gather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
CommSharedPtr v_CommCreateIf(int flag) final
void v_SendRecv(void *sendbuf, int sendcount, CommDataType sendtype, int dest, void *recvbuf, int recvcount, CommDataType recvtype, int source) 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_AllReduce(void *buf, int count, CommDataType dt, enum ReduceOperator pOp) 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_Isend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
void v_AlltoAllv(void *sendbuf, int sendcounts[], int sensdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
void v_StartAll(CommRequestSharedPtr request) final
bool v_TreatAsRankZero() override
CommSerial(int argc, char *argv[])
NekDouble v_Wtime() final
static std::string className
Name of class.
void v_NeighborAlltoAllv(void *sendbuf, int sendcounts[], int sdispls[], CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
void v_Irsend(void *buf, int count, CommDataType dt, int dest, CommRequestSharedPtr request, int loc) final
void v_Send(void *buf, int count, CommDataType dt, int dest) final
bool v_IsSerial() override
void v_WaitAll(CommRequestSharedPtr request) final
void v_AllGatherv(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcounts[], int rdispls[], CommDataType recvtype) final
void v_AlltoAll(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
void v_Scatter(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype, int root) final
void v_AllGather(void *sendbuf, int sendcount, CommDataType sendtype, void *recvbuf, int recvcount, CommDataType recvtype) final
void v_DistGraphCreateAdjacent(int indegree, const int sources[], const int sourceweights[], int reorder) final
void v_Recv(void *buf, int count, CommDataType dt, int source) final
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.