50 #ifndef XT_REDIST_INTERNAL_H 51 #define XT_REDIST_INTERNAL_H 73 void (*s_exchange)(
Xt_redist, int,
const void **,
void **);
74 void (*s_exchange1)(
Xt_redist,
const void *,
void *);
75 MPI_Datatype (*get_send_MPI_Datatype)(
Xt_redist, int);
76 MPI_Datatype (*get_recv_MPI_Datatype)(
Xt_redist, int);
117 size_t *restrict num_ranks,
118 const int *ranks[num_rank_sets]);
122 const MPI_Aint displacements[num_redists],
123 const MPI_Datatype datatypes[num_redists],
124 const int block_lengths[num_redists],
void xt_redist_msgs_strided_destruct(size_t n, struct Xt_redist_msg *msgs, MPI_Comm comm, size_t ofs_stride)
void xt_redist_msgs_strided_copy(size_t n, struct Xt_redist_msg *restrict src, size_t src_stride, struct Xt_redist_msg *restrict dst, size_t dst_stride, MPI_Comm comm)
const struct xt_redist_vtable * vtable
MPI_Datatype xt_create_compound_datatype(size_t num_redists, const MPI_Aint displacements[num_redists], const MPI_Datatype datatypes[num_redists], const int block_lengths[num_redists], MPI_Comm comm)
static void xt_redist_msgs_free(size_t n, struct Xt_redist_msg *msgs, MPI_Comm comm)
void xt_redist_check_comms(Xt_redist *redists, int num_redists, MPI_Comm comm)
size_t xt_ranks_uniq_count(size_t num_rank_sets, size_t *restrict num_ranks, const int *ranks[num_rank_sets])
struct Xt_redist_ * Xt_redist
void(* xt_redist_s_exchange_internal)(const void *src_data, void *dst_data, int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm)
int xt_redist_get_msg_ranks(Xt_redist redist, enum xt_msg_direction direction, int **ranks)