46#ifndef XT_MPI_INTERNAL_H
47#define XT_MPI_INTERNAL_H
92 MPI_Datatype old_type,
96 xt_mpi_call(MPI_Type_get_extent(old_type, &old_type_lb,
107 params->
old_type = MPI_DATATYPE_NULL;
155 int ops_completed[],
MPI_Comm comm);
163xt_mpi_test_some_mt(
int *restrict num_req,
164 MPI_Request *restrict req,
165 int *restrict ops_completed,
MPI_Comm comm);
struct Xt_mpiddt_list ddt_list
#define xt_mpi_call(call, comm)
void Xt_mpi_ddt_cache_free(struct Xt_mpiddt_list *ddt_list, MPI_Comm comm)
#define Xt_mpiddt_empty_list
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_astripe(size_t vlen, const struct Xt_aoffset_ext v[vlen], struct Xt_mpi_strp_prs_params *params)
static void xt_destroy_mpi_strp_prs_params(struct Xt_mpi_strp_prs_params *params)
PPM_DSO_INTERNAL MPI_Comm xt_mpi_comm_smart_dup(MPI_Comm comm, int *tag_offset)
PPM_DSO_INTERNAL void xt_mpi_comm_smart_dedup(MPI_Comm *comm, int tag_offset)
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_ddt_block_gen(int count, const int *disp, const int *blocklengths, struct Xt_mpi_strp_prs_params *params)
PPM_DSO_INTERNAL size_t xt_disp2ext_count(size_t disp_len, const int *disp)
@ xt_mpi_tag_xmap_dist_dir_dst_send
@ xt_mpi_tag_xmap_intersection_data_exchange
@ xt_mpi_tag_xmap_dist_dir_src_send
@ xt_mpi_tag_xmap_intersection_header_exchange
@ xt_mpi_tag_exchange_msg
PPM_DSO_INTERNAL bool xt_mpi_test_some(int *restrict num_req, MPI_Request req[], int ops_completed[], MPI_Comm comm)
PPM_DSO_INTERNAL void xt_mpi_init(void)
PPM_DSO_INTERNAL size_t xt_disp2ext(size_t disp_len, const int *disp, struct Xt_offset_ext *restrict v)
PPM_DSO_INTERNAL void xt_mpi_finalize(void)
static void xt_init_mpi_strp_prs_params(struct Xt_mpi_strp_prs_params *params, MPI_Datatype old_type, MPI_Comm comm)
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_stripe(size_t vlen, const struct Xt_offset_ext v[vlen], struct Xt_mpi_strp_prs_params *params)