65 =
xmalloc((
size_t)(nrecv + nsend) *
sizeof (*requests));
67 for (
int i = 0; i < nrecv; ++i)
73 for (
int i = 0; i < nsend; ++i)
74 xt_mpi_call(MPI_Isend((
void *)src_data, 1, send_msgs[i].datatype,
77 requests+nrecv+i), comm);
79 xt_mpi_call(MPI_Waitall(nrecv + nsend, requests, MPI_STATUSES_IGNORE), comm);
redistribution of data, non-public declarations
Xt_exchanger xt_exchanger_simple_base_new(int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset, xt_simple_exchange_func func)
add versions of standard API functions not returning on error
static void xt_exchanger_irecv_isend_s_exchange(const void *src_data, void *dst_data, int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, int tag_offset, MPI_Comm comm)
#define xt_mpi_call(call, comm)
Xt_exchanger xt_exchanger_irecv_isend_new(int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)