50#ifndef XT_REDIST_INTERNAL_H
51#define XT_REDIST_INTERNAL_H
86 const struct xt_redist_vtable *
vtable;
134 int *restrict *ranks);
164 const MPI_Aint displacements[count],
165 const MPI_Datatype datatypes[count],
166 const int block_lengths[count],
188 size_t num_ranks[num_redists],
189 int *restrict ranks[num_redists],
const struct xt_redist_vtable * vtable
MPI_Datatype(* get_msg_MPI_Datatype)(Xt_redist, int, enum xt_msg_direction, bool need_dup)
Xt_redist(* copy)(Xt_redist)
void(* s_exchange1)(Xt_redist, const void *, void *)
void(* a_exchange)(Xt_redist, int, const void *const *, void *const *, Xt_request *)
void(* a_exchange1)(Xt_redist, const void *, void *, Xt_request *)
int(* get_num_msg)(Xt_redist, enum xt_msg_direction)
int(* get_msg_ranks)(Xt_redist, enum xt_msg_direction, int *restrict *)
MPI_Comm(* get_MPI_Comm)(Xt_redist)
void(* s_exchange)(Xt_redist, int, const void *const *, void *const *)
opaque configuration object for settings where the default needs to be overridden
struct Xt_config_ * Xt_config
struct Xt_redist_ * Xt_redist
static void xt_redist_msgs_free(size_t n, struct Xt_redist_msg *msgs, MPI_Comm comm)
PPM_DSO_INTERNAL void xt_redist_msgs_strided_copy(size_t n, const struct Xt_redist_msg *restrict src, size_t src_stride, struct Xt_redist_msg *restrict dst, size_t dst_stride, MPI_Comm comm, bool dt_dup)
PPM_DSO_INTERNAL void xt_redist_check_comms(Xt_redist *redists, int num_redists, MPI_Comm comm)
PPM_DSO_INTERNAL MPI_Datatype xt_redist_get_MPI_Datatype(Xt_redist redist, int rank, enum xt_msg_direction direction, bool do_dup)
PPM_DSO_INTERNAL MPI_Datatype xt_create_compound_datatype(size_t count, const MPI_Aint displacements[count], const MPI_Datatype datatypes[count], const int block_lengths[count], struct Xt_mpiddt_list *ddt_list, MPI_Comm comm)
PPM_DSO_INTERNAL void xt_redist_msgs_strided_destruct(size_t n, struct Xt_redist_msg *msgs, MPI_Comm comm, size_t ofs_stride)
PPM_DSO_INTERNAL unsigned xt_redist_agg_msg_count(size_t num_redists, enum xt_msg_direction direction, const Xt_redist redists[num_redists], size_t num_ranks[num_redists], int *restrict ranks[num_redists], Xt_config config)
PPM_DSO_INTERNAL int xt_redist_get_msg_ranks(Xt_redist redist, enum xt_msg_direction direction, int *restrict *ranks)
struct Xt_request_ * Xt_request