Utility functions for creation of distributed directories.
More...
Go to the source code of this file.
|
#define | MIN(a, b) (((a)<(b))?(a):(b)) |
|
#define | MAX(a, b) (((a)>(b))?(a):(b)) |
|
|
PPM_DSO_INTERNAL void | xt_xmdd_free_dist_dirs (struct dist_dir_pair dist_dirs) |
|
PPM_DSO_INTERNAL int | xt_com_list_rank_cmp (const void *a_, const void *b_) |
|
PPM_DSO_INTERNAL 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
|
|
PPM_DSO_INTERNAL int | xt_xmdd_cmp_isect_src_rank (const void *a_, const void *b_) |
|
PPM_DSO_INTERNAL int | xt_xmdd_cmp_isect_dst_rank (const void *a_, const void *b_) |
|
PPM_DSO_INTERNAL 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, Xt_config config) |
|
PPM_DSO_INTERNAL 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) |
|
PPM_DSO_INTERNAL void | xt_xmap_dist_dir_same_rank_merge (struct dist_dir **dist_dir_results) |
|
◆ MAX
#define MAX |
( |
|
a, |
|
|
|
b |
|
) |
| (((a)>(b))?(a):(b)) |
◆ MIN
#define MIN |
( |
|
a, |
|
|
|
b |
|
) |
| (((a)<(b))?(a):(b)) |
◆ xt_xmdd_direction
◆ xt_com_list_rank_cmp()
◆ xt_xmap_dist_dir_match_src_dst()
◆ xt_xmap_dist_dir_pack_intersections()
PPM_DSO_INTERNAL 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 |
|
) |
| |
◆ xt_xmap_dist_dir_same_rank_merge()
◆ xt_xmap_dist_dir_send_intersections()
PPM_DSO_INTERNAL 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
- Parameters
-
send_buffer | pointer to buffer of packed index lists |
send_size_asize | number of per-rank entries in send_size |
send_size_entry | index of send_size to act on |
tag | tag to use in MPI_Isend |
comm | communicator to use |
rank_lim | iterate over rank from 0 to rank_lim - 1 when investigating send_size[rank][send_size_entry] |
requests | the resulting MPI requests from the issued MPI_Isend calls are stored here, size must be at least number of greater-than-zero entries in send_size column send_size_entry |
send_size | 2-dimensional array of individual message sizes |
◆ xt_xmdd_cmp_isect_dst_rank()
PPM_DSO_INTERNAL int xt_xmdd_cmp_isect_dst_rank |
( |
const void * |
a_, |
|
|
const void * |
b_ |
|
) |
| |
◆ xt_xmdd_cmp_isect_src_rank()
PPM_DSO_INTERNAL int xt_xmdd_cmp_isect_src_rank |
( |
const void * |
a_, |
|
|
const void * |
b_ |
|
) |
| |
◆ xt_xmdd_free_dist_dirs()