7 #define _EXTERN_C_ extern "C" 14 #endif // MPICH_HAS_C2F 18 #pragma weak pmpi_init 19 #pragma weak PMPI_INIT 20 #pragma weak pmpi_init_ 21 #pragma weak pmpi_init__ 29 #include <nvToolsExt.h> 30 #include <nvToolsExtCudaRt.h> 35 int _wrap_py_return_val = 0;
39 nvtxNameCategoryA(999,
"MPI");
40 _wrap_py_return_val =
PMPI_Init(argc, argv);
42 PMPI_Comm_rank(MPI_COMM_WORLD, &
rank);
46 nvtxNameOsThread(pthread_self(), name);
47 nvtxNameCudaDeviceA(
rank, name);
49 return _wrap_py_return_val;
57 int _wrap_py_return_val = 0;
61 nvtxEventAttributes_t eventAttrib = {0};
62 eventAttrib.version = NVTX_VERSION;
63 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
64 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
65 eventAttrib.message.ascii =
"MPI_Send";
66 eventAttrib.category = 999;
68 nvtxRangePushEx(&eventAttrib);
69 _wrap_py_return_val =
PMPI_Send(buf,
count, datatype, dest, tag, comm);
72 return _wrap_py_return_val;
76 _EXTERN_C_ int PMPI_Recv(
void *buf,
int count, MPI_Datatype datatype,
int source,
int tag, MPI_Comm comm, MPI_Status *status);
77 _EXTERN_C_ int MPI_Recv(
void *buf,
int count, MPI_Datatype datatype,
int source,
int tag, MPI_Comm comm, MPI_Status *status) {
78 int _wrap_py_return_val = 0;
82 nvtxEventAttributes_t eventAttrib = {0};
83 eventAttrib.version = NVTX_VERSION;
84 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
85 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
86 eventAttrib.message.ascii =
"MPI_Recv";
87 eventAttrib.category = 999;
89 nvtxRangePushEx(&eventAttrib);
90 _wrap_py_return_val =
PMPI_Recv(buf,
count, datatype, source, tag, comm, status);
93 return _wrap_py_return_val;
99 int _wrap_py_return_val = 0;
103 nvtxEventAttributes_t eventAttrib = {0};
104 eventAttrib.version = NVTX_VERSION;
105 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
106 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
107 eventAttrib.message.ascii =
"MPI_Allreduce";
108 eventAttrib.category = 999;
110 nvtxRangePushEx(&eventAttrib);
114 return _wrap_py_return_val;
118 _EXTERN_C_ int PMPI_Reduce(
const void *sendbuf,
void *recvbuf,
int count, MPI_Datatype datatype, MPI_Op op,
int root, MPI_Comm comm);
120 int _wrap_py_return_val = 0;
124 nvtxEventAttributes_t eventAttrib = {0};
125 eventAttrib.version = NVTX_VERSION;
126 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
127 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
128 eventAttrib.message.ascii =
"MPI_Reduce";
129 eventAttrib.category = 999;
131 nvtxRangePushEx(&eventAttrib);
132 _wrap_py_return_val =
PMPI_Reduce(sendbuf, recvbuf,
count, datatype, op, root, comm);
135 return _wrap_py_return_val;
141 int _wrap_py_return_val = 0;
145 nvtxEventAttributes_t eventAttrib = {0};
146 eventAttrib.version = NVTX_VERSION;
147 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
148 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
149 eventAttrib.message.ascii =
"MPI_Wait";
150 eventAttrib.category = 999;
152 nvtxRangePushEx(&eventAttrib);
153 _wrap_py_return_val =
PMPI_Wait(request, status);
156 return _wrap_py_return_val;
162 int _wrap_py_return_val = 0;
166 nvtxEventAttributes_t eventAttrib = {0};
167 eventAttrib.version = NVTX_VERSION;
168 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
169 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
170 eventAttrib.message.ascii =
"MPI_Waitany";
171 eventAttrib.category = 999;
173 nvtxRangePushEx(&eventAttrib);
177 return _wrap_py_return_val;
183 int _wrap_py_return_val = 0;
187 nvtxEventAttributes_t eventAttrib = {0};
188 eventAttrib.version = NVTX_VERSION;
189 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
190 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
191 eventAttrib.message.ascii =
"MPI_Waitall";
192 eventAttrib.category = 999;
194 nvtxRangePushEx(&eventAttrib);
198 return _wrap_py_return_val;
202 _EXTERN_C_ int PMPI_Waitsome(
int incount, MPI_Request array_of_requests[],
int *outcount,
int array_of_indices[], MPI_Status array_of_statuses[]);
203 _EXTERN_C_ int MPI_Waitsome(
int incount, MPI_Request array_of_requests[],
int *outcount,
int array_of_indices[], MPI_Status array_of_statuses[]) {
204 int _wrap_py_return_val = 0;
205 if (
in_wrapper)
return PMPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses);
208 nvtxEventAttributes_t eventAttrib = {0};
209 eventAttrib.version = NVTX_VERSION;
210 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
211 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
212 eventAttrib.message.ascii =
"MPI_Waitsome";
213 eventAttrib.category = 999;
215 nvtxRangePushEx(&eventAttrib);
216 _wrap_py_return_val =
PMPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses);
219 return _wrap_py_return_val;
223 _EXTERN_C_ int PMPI_Gather(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm);
224 _EXTERN_C_ int MPI_Gather(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm) {
225 int _wrap_py_return_val = 0;
226 if (
in_wrapper)
return PMPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
229 nvtxEventAttributes_t eventAttrib = {0};
230 eventAttrib.version = NVTX_VERSION;
231 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
232 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
233 eventAttrib.message.ascii =
"MPI_Gather";
234 eventAttrib.category = 999;
236 nvtxRangePushEx(&eventAttrib);
237 _wrap_py_return_val =
PMPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
240 return _wrap_py_return_val;
244 _EXTERN_C_ int PMPI_Gatherv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int displs[], MPI_Datatype recvtype,
int root, MPI_Comm comm);
245 _EXTERN_C_ int MPI_Gatherv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int displs[], MPI_Datatype recvtype,
int root, MPI_Comm comm) {
246 int _wrap_py_return_val = 0;
247 if (
in_wrapper)
return PMPI_Gatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm);
250 nvtxEventAttributes_t eventAttrib = {0};
251 eventAttrib.version = NVTX_VERSION;
252 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
253 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
254 eventAttrib.message.ascii =
"MPI_Gatherv";
255 eventAttrib.category = 999;
257 nvtxRangePushEx(&eventAttrib);
258 _wrap_py_return_val =
PMPI_Gatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm);
261 return _wrap_py_return_val;
265 _EXTERN_C_ int PMPI_Scatter(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm);
266 _EXTERN_C_ int MPI_Scatter(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm) {
267 int _wrap_py_return_val = 0;
268 if (
in_wrapper)
return PMPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
271 nvtxEventAttributes_t eventAttrib = {0};
272 eventAttrib.version = NVTX_VERSION;
273 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
274 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
275 eventAttrib.message.ascii =
"MPI_Scatter";
276 eventAttrib.category = 999;
278 nvtxRangePushEx(&eventAttrib);
279 _wrap_py_return_val =
PMPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
282 return _wrap_py_return_val;
286 _EXTERN_C_ int PMPI_Scatterv(
const void *sendbuf,
const int sendcounts[],
const int displs[], MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm);
287 _EXTERN_C_ int MPI_Scatterv(
const void *sendbuf,
const int sendcounts[],
const int displs[], MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm) {
288 int _wrap_py_return_val = 0;
289 if (
in_wrapper)
return PMPI_Scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm);
292 nvtxEventAttributes_t eventAttrib = {0};
293 eventAttrib.version = NVTX_VERSION;
294 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
295 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
296 eventAttrib.message.ascii =
"MPI_Scatterv";
297 eventAttrib.category = 999;
299 nvtxRangePushEx(&eventAttrib);
300 _wrap_py_return_val =
PMPI_Scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm);
303 return _wrap_py_return_val;
307 _EXTERN_C_ int PMPI_Allgather(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm);
308 _EXTERN_C_ int MPI_Allgather(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm) {
309 int _wrap_py_return_val = 0;
313 nvtxEventAttributes_t eventAttrib = {0};
314 eventAttrib.version = NVTX_VERSION;
315 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
316 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
317 eventAttrib.message.ascii =
"MPI_Allgather";
318 eventAttrib.category = 999;
320 nvtxRangePushEx(&eventAttrib);
321 _wrap_py_return_val =
PMPI_Allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
324 return _wrap_py_return_val;
328 _EXTERN_C_ int PMPI_Allgatherv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int displs[], MPI_Datatype recvtype, MPI_Comm comm);
329 _EXTERN_C_ int MPI_Allgatherv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int displs[], MPI_Datatype recvtype, MPI_Comm comm) {
330 int _wrap_py_return_val = 0;
334 nvtxEventAttributes_t eventAttrib = {0};
335 eventAttrib.version = NVTX_VERSION;
336 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
337 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
338 eventAttrib.message.ascii =
"MPI_Allgatherv";
339 eventAttrib.category = 999;
341 nvtxRangePushEx(&eventAttrib);
342 _wrap_py_return_val =
PMPI_Allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm);
345 return _wrap_py_return_val;
349 _EXTERN_C_ int PMPI_Alltoall(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm);
350 _EXTERN_C_ int MPI_Alltoall(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm) {
351 int _wrap_py_return_val = 0;
355 nvtxEventAttributes_t eventAttrib = {0};
356 eventAttrib.version = NVTX_VERSION;
357 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
358 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
359 eventAttrib.message.ascii =
"MPI_Alltoall";
360 eventAttrib.category = 999;
362 nvtxRangePushEx(&eventAttrib);
363 _wrap_py_return_val =
PMPI_Alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
366 return _wrap_py_return_val;
370 _EXTERN_C_ int PMPI_Alltoallv(
const void *sendbuf,
const int sendcounts[],
const int sdispls[], MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm);
371 _EXTERN_C_ int MPI_Alltoallv(
const void *sendbuf,
const int sendcounts[],
const int sdispls[], MPI_Datatype sendtype,
void *recvbuf,
const int recvcounts[],
const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm) {
372 int _wrap_py_return_val = 0;
373 if (
in_wrapper)
return PMPI_Alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm);
376 nvtxEventAttributes_t eventAttrib = {0};
377 eventAttrib.version = NVTX_VERSION;
378 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
379 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
380 eventAttrib.message.ascii =
"MPI_Alltoallv";
381 eventAttrib.category = 999;
383 nvtxRangePushEx(&eventAttrib);
384 _wrap_py_return_val =
PMPI_Alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm);
387 return _wrap_py_return_val;
391 _EXTERN_C_ int PMPI_Alltoallw(
const void *sendbuf,
const int sendcounts[],
const int sdispls[],
const MPI_Datatype sendtypes[],
void *recvbuf,
const int recvcounts[],
const int rdispls[],
const MPI_Datatype recvtypes[], MPI_Comm comm);
392 _EXTERN_C_ int MPI_Alltoallw(
const void *sendbuf,
const int sendcounts[],
const int sdispls[],
const MPI_Datatype sendtypes[],
void *recvbuf,
const int recvcounts[],
const int rdispls[],
const MPI_Datatype recvtypes[], MPI_Comm comm) {
393 int _wrap_py_return_val = 0;
394 if (
in_wrapper)
return PMPI_Alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm);
397 nvtxEventAttributes_t eventAttrib = {0};
398 eventAttrib.version = NVTX_VERSION;
399 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
400 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
401 eventAttrib.message.ascii =
"MPI_Alltoallw";
402 eventAttrib.category = 999;
404 nvtxRangePushEx(&eventAttrib);
405 _wrap_py_return_val =
PMPI_Alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm);
408 return _wrap_py_return_val;
414 int _wrap_py_return_val = 0;
418 nvtxEventAttributes_t eventAttrib = {0};
419 eventAttrib.version = NVTX_VERSION;
420 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
421 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
422 eventAttrib.message.ascii =
"MPI_Bcast";
423 eventAttrib.category = 999;
425 nvtxRangePushEx(&eventAttrib);
429 return _wrap_py_return_val;
433 _EXTERN_C_ int PMPI_Sendrecv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
int dest,
int sendtag,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int source,
int recvtag, MPI_Comm comm, MPI_Status *status);
434 _EXTERN_C_ int MPI_Sendrecv(
const void *sendbuf,
int sendcount, MPI_Datatype sendtype,
int dest,
int sendtag,
void *recvbuf,
int recvcount, MPI_Datatype recvtype,
int source,
int recvtag, MPI_Comm comm, MPI_Status *status) {
435 int _wrap_py_return_val = 0;
436 if (
in_wrapper)
return PMPI_Sendrecv(sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype, source, recvtag, comm, status);
439 nvtxEventAttributes_t eventAttrib = {0};
440 eventAttrib.version = NVTX_VERSION;
441 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
442 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
443 eventAttrib.message.ascii =
"MPI_Sendrecv";
444 eventAttrib.category = 999;
446 nvtxRangePushEx(&eventAttrib);
447 _wrap_py_return_val =
PMPI_Sendrecv(sendbuf, sendcount, sendtype, dest, sendtag, recvbuf, recvcount, recvtype, source, recvtag, comm, status);
450 return _wrap_py_return_val;
456 int _wrap_py_return_val = 0;
460 nvtxEventAttributes_t eventAttrib = {0};
461 eventAttrib.version = NVTX_VERSION;
462 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
463 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
464 eventAttrib.message.ascii =
"MPI_Barrier";
465 eventAttrib.category = 999;
467 nvtxRangePushEx(&eventAttrib);
471 return _wrap_py_return_val;
477 int _wrap_py_return_val = 0;
481 nvtxEventAttributes_t eventAttrib = {0};
482 eventAttrib.version = NVTX_VERSION;
483 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
484 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
485 eventAttrib.message.ascii =
"MPI_Start";
486 eventAttrib.category = 999;
488 nvtxRangePushEx(&eventAttrib);
492 return _wrap_py_return_val;
498 int _wrap_py_return_val = 0;
502 nvtxEventAttributes_t eventAttrib = {0};
503 eventAttrib.version = NVTX_VERSION;
504 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
505 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
506 eventAttrib.message.ascii =
"MPI_Test";
507 eventAttrib.category = 999;
509 nvtxRangePushEx(&eventAttrib);
510 _wrap_py_return_val =
PMPI_Test(request, flag, status);
513 return _wrap_py_return_val;
519 int _wrap_py_return_val = 0;
523 nvtxEventAttributes_t eventAttrib = {0};
524 eventAttrib.version = NVTX_VERSION;
525 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
526 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
527 eventAttrib.message.ascii =
"MPI_Send_init";
528 eventAttrib.category = 999;
530 nvtxRangePushEx(&eventAttrib);
534 return _wrap_py_return_val;
540 int _wrap_py_return_val = 0;
544 nvtxEventAttributes_t eventAttrib = {0};
545 eventAttrib.version = NVTX_VERSION;
546 eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE;
547 eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII;
548 eventAttrib.message.ascii =
"MPI_Recv_init";
549 eventAttrib.category = 999;
551 nvtxRangePushEx(&eventAttrib);
555 return _wrap_py_return_val;
_EXTERN_C_ int PMPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
_EXTERN_C_ int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int MPI_Init(int *argc, char ***argv)
_EXTERN_C_ int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
_EXTERN_C_ int PMPI_Alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Alltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm)
_EXTERN_C_ int MPI_Wait(MPI_Request *request, MPI_Status *status)
_EXTERN_C_ int MPI_Alltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm)
_EXTERN_C_ int PMPI_Waitany(int count, MPI_Request array_of_requests[], int *index, MPI_Status *status)
_EXTERN_C_ void PMPI_INIT(MPI_Fint *ierr)
_EXTERN_C_ void pmpi_init__(MPI_Fint *ierr)
_EXTERN_C_ int PMPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status)
_EXTERN_C_ int PMPI_Init(int *argc, char ***argv)
_EXTERN_C_ int PMPI_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount, int array_of_indices[], MPI_Status array_of_statuses[])
_EXTERN_C_ int PMPI_Scatterv(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status)
char * index(const char *, int)
_EXTERN_C_ int MPI_Barrier(MPI_Comm comm)
_EXTERN_C_ int PMPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
_EXTERN_C_ int PMPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount, int array_of_indices[], MPI_Status array_of_statuses[])
_EXTERN_C_ int MPI_Scatterv(const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int PMPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status *array_of_statuses)
_EXTERN_C_ int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
_EXTERN_C_ int PMPI_Wait(MPI_Request *request, MPI_Status *status)
_EXTERN_C_ int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)
_EXTERN_C_ int MPI_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Send_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
_EXTERN_C_ int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
_EXTERN_C_ int MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
_EXTERN_C_ int PMPI_Send_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
_EXTERN_C_ int MPI_Alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
_EXTERN_C_ int PMPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Start(MPI_Request *request)
_EXTERN_C_ int MPI_Start(MPI_Request *request)
_EXTERN_C_ int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status *array_of_statuses)
_EXTERN_C_ int MPI_Waitany(int count, MPI_Request array_of_requests[], int *index, MPI_Status *status)
_EXTERN_C_ int PMPI_Barrier(MPI_Comm comm)
int sprintf(char *, const char *,...) __attribute__((__format__(__printf__
_EXTERN_C_ int MPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int PMPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int PMPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
_EXTERN_C_ int MPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
_EXTERN_C_ int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
_EXTERN_C_ int MPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
_EXTERN_C_ int PMPI_Test(MPI_Request *request, int *flag, MPI_Status *status)
_EXTERN_C_ int PMPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
_EXTERN_C_ int PMPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
_EXTERN_C_ void pmpi_init_(MPI_Fint *ierr)
_EXTERN_C_ void pmpi_init(MPI_Fint *ierr)