Yet Another eXchange Tool 0.11.1
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions
xt_xmap_dist_dir_common.h File Reference

Utility functions for creation of distributed directories. More...

#include <stdbool.h>
#include "core/ppm_visibility.h"
#include "xt/xt_idxlist.h"
#include "xt/xt_xmap_intersection.h"
Include dependency graph for xt_xmap_dist_dir_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dist_dir
 
struct  dist_dir_pair
 
struct  Xt_xmdd_txstat
 
struct  isect
 

Macros

#define MIN(a, b)   (((a)<(b))?(a):(b))
 
#define MAX(a, b)   (((a)>(b))?(a):(b))
 

Enumerations

enum  xt_xmdd_direction { xt_xmdd_direction_src = 0 , xt_xmdd_direction_dst = 1 }
 

Functions

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)
 

Detailed Description

Utility functions for creation of distributed directories.

Author
Jörg Behrens behre.nosp@m.ns@d.nosp@m.krz.d.nosp@m.e Moritz Hanke hanke.nosp@m.@dkr.nosp@m.z.de Thomas Jahns jahns.nosp@m.@dkr.nosp@m.z.de

Definition in file xt_xmap_dist_dir_common.h.

Macro Definition Documentation

◆ MAX

#define MAX (   a,
 
)    (((a)>(b))?(a):(b))

Definition at line 62 of file xt_xmap_dist_dir_common.h.

◆ MIN

#define MIN (   a,
 
)    (((a)<(b))?(a):(b))

Definition at line 61 of file xt_xmap_dist_dir_common.h.

Enumeration Type Documentation

◆ xt_xmdd_direction

Enumerator
xt_xmdd_direction_src 
xt_xmdd_direction_dst 

Definition at line 106 of file xt_xmap_dist_dir_common.h.

Function Documentation

◆ xt_com_list_rank_cmp()

PPM_DSO_INTERNAL int xt_com_list_rank_cmp ( const void *  a_,
const void *  b_ 
)

Definition at line 280 of file xt_xmap_dist_dir_common.c.

Here is the caller graph for this function:

◆ xt_xmap_dist_dir_match_src_dst()

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 
)

Definition at line 111 of file xt_xmap_dist_dir_common.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 
)

Definition at line 156 of file xt_xmap_dist_dir_common.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_xmap_dist_dir_same_rank_merge()

PPM_DSO_INTERNAL void xt_xmap_dist_dir_same_rank_merge ( struct dist_dir **  dist_dir_results)

Definition at line 222 of file xt_xmap_dist_dir_common.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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_bufferpointer to buffer of packed index lists
send_size_asizenumber of per-rank entries in send_size
send_size_entryindex of send_size to act on
tagtag to use in MPI_Isend
commcommunicator to use
rank_limiterate over rank from 0 to rank_lim - 1 when investigating send_size[rank][send_size_entry]
requeststhe 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_size2-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_ 
)

Definition at line 272 of file xt_xmap_dist_dir_common.c.

Here is the caller graph for this function:

◆ xt_xmdd_cmp_isect_src_rank()

PPM_DSO_INTERNAL int xt_xmdd_cmp_isect_src_rank ( const void *  a_,
const void *  b_ 
)

Definition at line 264 of file xt_xmap_dist_dir_common.c.

Here is the caller graph for this function:

◆ xt_xmdd_free_dist_dirs()

PPM_DSO_INTERNAL void xt_xmdd_free_dist_dirs ( struct dist_dir_pair  dist_dirs)

Definition at line 79 of file xt_xmap_dist_dir_common.c.

Here is the call graph for this function:
Here is the caller graph for this function: