48 #ifndef XT_XMAP_DIST_DIR_COMMON_H
49 #define XT_XMAP_DIST_DIR_COMMON_H
60 #define MIN(a,b) (((a)<(b))?(a):(b))
61 #define MAX(a,b) (((a)>(b))?(a):(b))
82 size_t *stripes_array_size,
105 void *restrict send_buffer,
106 size_t send_size_asize,
size_t send_size_entry,
107 int tag,
MPI_Comm comm,
int rank_lim,
108 MPI_Request requests[],
109 const int send_size[rank_lim][send_size_asize]);
131 const struct dist_dir *dst_dist_dir,
132 struct isect **src_dst_intersections);
137 size_t num_intersections,
138 const struct isect *restrict src_dst_intersections,
139 bool isect_idxlist_delete,
140 size_t send_size_asize,
size_t send_size_idx,
141 int (*send_size)[send_size_asize],
142 unsigned char *buffer,
size_t buf_size,
size_t *ofs,
MPI_Comm comm);
Xt_int local_index_range_lbound
Xt_int local_index_range_ubound
struct Xt_com_list entries[]
int xt_com_list_rank_cmp(const void *a_, const void *b_)
int xt_xmdd_cmp_isect_src_rank(const void *a_, const void *b_)
void xt_xmdd_free_dist_dir(struct dist_dir *dist_dir)
size_t xt_xmap_dist_dir_match_src_dst(const struct dist_dir *src_dist_dir, const struct dist_dir *dst_dist_dir, struct isect **src_dst_intersections)
int xt_xmdd_cmp_isect_dst_rank(const void *a_, const void *b_)
Xt_idxlist xt_xmap_dist_dir_get_bucket(const struct bucket_params *bucket_params, struct Xt_stripe **stripes_, size_t *stripes_array_size, int dist_dir_rank)
generates the buckets of the distributed directory
struct Xt_xmdd_txstat xt_xmap_dist_dir_send_intersections(void *restrict send_buffer, size_t send_size_asize, size_t send_size_entry, int tag, MPI_Comm comm, int rank_lim, MPI_Request requests[], const int send_size[rank_lim][send_size_asize])
initiate sends of packed index lists
void xt_xmap_dist_dir_same_rank_merge(struct dist_dir **dist_dir_results)
size_t xt_xmap_dist_dir_pack_intersections(enum xt_xmdd_direction target, size_t num_intersections, const struct isect *restrict src_dst_intersections, bool isect_idxlist_delete, size_t send_size_asize, size_t send_size_idx, int(*send_size)[send_size_asize], unsigned char *buffer, size_t buf_size, size_t *ofs, MPI_Comm comm)