49 MPI_Request *reqs = malloc(n *
sizeof(MPI_Request));
60 MPI_Request *reqs = vreqs;
62 int tid = omp_get_thread_num();
66 MPI_Isend(buf_d+offset, nbytes, MPI_BYTE, rank, tid,
NEKO_COMM, &reqs[
i-1]);
71 MPI_Request *reqs = vreqs;
73 int tid = omp_get_thread_num();
78 MPI_Irecv(buf_d+offset, nbytes, MPI_BYTE, rank, tid,
NEKO_COMM, &reqs[
i-1]);
82 MPI_Request *reqs = vreqs;
84 MPI_Test(&reqs[
i-1], &flag, MPI_STATUS_IGNORE);
89 MPI_Request *reqs = vreqs;
90 MPI_Waitall(n, reqs, MPI_STATUSES_IGNORE);
94 MPI_Request *reqs = vreqs;
96 MPI_Waitany(n, reqs, &
j, MPI_STATUSES_IGNORE);
97 if (
j == MPI_UNDEFINED) {
void device_mpi_init_reqs(int n, void **reqs_out)
void device_mpi_isend(void *buf_d, int offset, int nbytes, int rank, void *vreqs, int i)
int device_mpi_test(void *vreqs, int i)
void device_mpi_waitall(int n, void *vreqs)
void device_mpi_irecv(void *buf_d, int offset, int nbytes, int rank, void *vreqs, int i)
void device_mpi_free_reqs(void **reqs)
int device_mpi_waitany(int n, void *vreqs, int *i)