40class ARCCORE_MESSAGEPASSINGMPI_EXPORT IMpiProfiling
47 using ReturnType = void;
51 IMpiProfiling() =
default;
52 virtual ~IMpiProfiling() =
default;
57 virtual ReturnType broadcast(
void* buffer,
int count, MPI_Datatype datatype,
int root, MPI_Comm comm) = 0;
59 virtual ReturnType gather(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
60 int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm) = 0;
62 virtual ReturnType gatherVariable(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
63 const int* recvcounts,
const int* displs, MPI_Datatype recvtype,
int root,
66 virtual ReturnType allGather(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
67 int recvcount, MPI_Datatype recvtype, MPI_Comm comm) = 0;
69 virtual ReturnType allGatherVariable(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
70 const int* recvcounts,
const int* displs, MPI_Datatype recvtype, MPI_Comm comm) = 0;
72 virtual ReturnType scatterVariable(
const void* sendbuf,
const int* sendcounts,
const int* displs,
73 MPI_Datatype sendtype,
void* recvbuf,
int recvcount, MPI_Datatype recvtype,
74 int root, MPI_Comm comm) = 0;
76 virtual ReturnType allToAll(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
77 int recvcount, MPI_Datatype recvtype, MPI_Comm comm) = 0;
79 virtual ReturnType allToAllVariable(
const void* sendbuf,
const int* sendcounts,
const int* sdispls,
80 MPI_Datatype sendtype,
void* recvbuf,
const int* recvcounts,
81 const int* rdispls, MPI_Datatype recvtype, MPI_Comm comm) = 0;
83 virtual ReturnType barrier(MPI_Comm comm) = 0;
85 virtual ReturnType reduce(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype,
86 MPI_Op op,
int root, MPI_Comm comm) = 0;
88 virtual ReturnType allReduce(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype,
89 MPI_Op op, MPI_Comm comm) = 0;
91 virtual ReturnType scan(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype, MPI_Op op,
94 virtual ReturnType sendRecv(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
int dest,
95 int sendtag,
void* recvbuf,
int recvcount, MPI_Datatype recvtype,
96 int source,
int recvtag, MPI_Comm comm, MPI_Status* status) = 0;
98 virtual ReturnType iSend(
const void* buf,
int count, MPI_Datatype datatype,
int dest,
int tag,
99 MPI_Comm comm, MPI_Request* request) = 0;
101 virtual ReturnType send(
const void* buf,
int count, MPI_Datatype datatype,
int dest,
int tag, MPI_Comm comm) = 0;
103 virtual ReturnType iRecv(
void* buf,
int count, MPI_Datatype datatype,
int source,
int tag,
104 MPI_Comm comm, MPI_Request* request) = 0;
106 virtual ReturnType recv(
void* buf,
int count, MPI_Datatype datatype,
int source,
int tag, MPI_Comm comm,
107 MPI_Status* status) = 0;
109 virtual ReturnType test(MPI_Request* request,
int* flag, MPI_Status* status) = 0;
111 virtual ReturnType probe(
int source,
int tag, MPI_Comm comm, MPI_Status* status) = 0;
113 virtual ReturnType getCount(
const MPI_Status* status, MPI_Datatype datatype,
int* count) = 0;
115 virtual ReturnType wait(MPI_Request* request, MPI_Status* status) = 0;
117 virtual ReturnType waitAll(
int count, MPI_Request* array_of_requests, MPI_Status* array_of_statuses) = 0;
119 virtual ReturnType testSome(
int incount, MPI_Request* array_of_requests,
int* outcount,
120 int* array_of_indices, MPI_Status* array_of_statuses) = 0;
122 virtual ReturnType waitSome(
int incount, MPI_Request* array_of_requests,
int* outcount,
123 int* array_of_indices, MPI_Status* array_of_statuses) = 0;