39class ARCCORE_MESSAGEPASSINGMPI_EXPORT IMpiProfiling
46 using ReturnType = void;
50 IMpiProfiling() =
default;
51 virtual ~IMpiProfiling() =
default;
56 virtual ReturnType broadcast(
void* buffer,
int count, MPI_Datatype datatype,
int root, MPI_Comm comm) = 0;
58 virtual ReturnType gather(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
59 int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm) = 0;
61 virtual ReturnType gatherVariable(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
62 const int* recvcounts,
const int* displs, MPI_Datatype recvtype,
int root,
65 virtual ReturnType allGather(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
66 int recvcount, MPI_Datatype recvtype, MPI_Comm comm) = 0;
68 virtual ReturnType allGatherVariable(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
69 const int* recvcounts,
const int* displs, MPI_Datatype recvtype, MPI_Comm comm) = 0;
71 virtual ReturnType scatterVariable(
const void* sendbuf,
const int* sendcounts,
const int* displs,
72 MPI_Datatype sendtype,
void* recvbuf,
int recvcount, MPI_Datatype recvtype,
73 int root, MPI_Comm comm) = 0;
75 virtual ReturnType allToAll(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
76 int recvcount, MPI_Datatype recvtype, MPI_Comm comm) = 0;
78 virtual ReturnType allToAllVariable(
const void* sendbuf,
const int* sendcounts,
const int* sdispls,
79 MPI_Datatype sendtype,
void* recvbuf,
const int* recvcounts,
80 const int* rdispls, MPI_Datatype recvtype, MPI_Comm comm) = 0;
82 virtual ReturnType barrier(MPI_Comm comm) = 0;
84 virtual ReturnType reduce(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype,
85 MPI_Op op,
int root, MPI_Comm comm) = 0;
87 virtual ReturnType allReduce(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype,
88 MPI_Op op, MPI_Comm comm) = 0;
90 virtual ReturnType scan(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype, MPI_Op op,
93 virtual ReturnType scanExclusive(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype, MPI_Op op,
96 virtual ReturnType sendRecv(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
int dest,
97 int sendtag,
void* recvbuf,
int recvcount, MPI_Datatype recvtype,
98 int source,
int recvtag, MPI_Comm comm, MPI_Status* status) = 0;
100 virtual ReturnType iSend(
const void* buf,
int count, MPI_Datatype datatype,
int dest,
int tag,
101 MPI_Comm comm, MPI_Request* request) = 0;
103 virtual ReturnType send(
const void* buf,
int count, MPI_Datatype datatype,
int dest,
int tag, MPI_Comm comm) = 0;
105 virtual ReturnType iRecv(
void* buf,
int count, MPI_Datatype datatype,
int source,
int tag,
106 MPI_Comm comm, MPI_Request* request) = 0;
108 virtual ReturnType recv(
void* buf,
int count, MPI_Datatype datatype,
int source,
int tag, MPI_Comm comm,
109 MPI_Status* status) = 0;
111 virtual ReturnType test(MPI_Request* request,
int* flag, MPI_Status* status) = 0;
113 virtual ReturnType probe(
int source,
int tag, MPI_Comm comm, MPI_Status* status) = 0;
115 virtual ReturnType getCount(
const MPI_Status* status, MPI_Datatype datatype,
int* count) = 0;
117 virtual ReturnType wait(MPI_Request* request, MPI_Status* status) = 0;
119 virtual ReturnType waitAll(
int count, MPI_Request* array_of_requests, MPI_Status* array_of_statuses) = 0;
121 virtual ReturnType testSome(
int incount, MPI_Request* array_of_requests,
int* outcount,
122 int* array_of_indices, MPI_Status* array_of_statuses) = 0;
124 virtual ReturnType waitSome(
int incount, MPI_Request* array_of_requests,
int* outcount,
125 int* array_of_indices, MPI_Status* array_of_statuses) = 0;