47 #ifndef XT_EXCHANGER_H
48 #define XT_EXCHANGER_H
94 const void * src_data,
void * dst_data,
152 int *restrict *ranks);
struct xt_exchanger_vtable * vtable
int(* get_msg_ranks)(Xt_exchanger, enum xt_msg_direction, int *restrict *)
Xt_exchanger(* copy)(Xt_exchanger, MPI_Comm, int)
void(* a_exchange)(Xt_exchanger, const void *, void *, Xt_request *request)
MPI_Datatype(* get_MPI_Datatype)(Xt_exchanger, int, enum xt_msg_direction)
void(* s_exchange)(Xt_exchanger, const void *, void *)
base definitions header file
Xt_exchanger(* Xt_exchanger_new)(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
void xt_exchanger_internal_optimize(size_t n, void *msgs, size_t msg_type_size, MPI_Comm comm)
void xt_exchanger_s_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data)
int xt_exchanger_get_msg_ranks(Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks)
void xt_exchanger_a_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request)
struct Xt_exchanger_ * Xt_exchanger
MPI_Datatype xt_exchanger_get_MPI_Datatype(Xt_exchanger exchanger, int rank, enum xt_msg_direction direction)
Xt_exchanger xt_exchanger_copy(Xt_exchanger orig, MPI_Comm new_comm, int new_tag_offset)
void xt_exchanger_delete(Xt_exchanger)
redistribution of data, non-public declarations