|
Yet Another eXchange Tool
DO_NOT_EDIT_HERE
|
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <assert.h>#include <limits.h>#include <mpi.h>#include "xt/xt_idxlist.h"#include "xt/xt_idxvec.h"#include "xt/xt_xmap.h"#include "xt_xmap_internal.h"#include "xt/xt_mpi.h"#include "xt_mpi_internal.h"#include "core/core.h"#include "core/ppm_xfuncs.h"#include "xt/xt_xmap_intersection.h"#include "ensure_array_size.h"#include "xt_arithmetic_util.h"Go to the source code of this file.
Data Structures | |
| struct | Xt_xmap_iter_intersection_ |
| struct | exchange_data |
| struct | Xt_xmap_intersection_ |
| struct | pos_run |
Typedefs | |
| typedef struct Xt_xmap_iter_intersection_ * | Xt_xmap_iter_intersection |
| typedef struct Xt_xmap_intersection_ * | Xt_xmap_intersection |
Enumerations | |
| enum | { bitsPerCoverageElement = sizeof (unsigned long) * CHAR_BIT } |
Functions | |
| static MPI_Comm | xmap_intersection_get_communicator (Xt_xmap xmap) |
| static int | xmap_intersection_get_num_destinations (Xt_xmap xmap) |
| static int | xmap_intersection_get_num_sources (Xt_xmap xmap) |
| static void | xmap_intersection_get_destination_ranks (Xt_xmap xmap, int *ranks) |
| static void | xmap_intersection_get_source_ranks (Xt_xmap xmap, int *ranks) |
| static Xt_xmap_iter | xmap_intersection_get_in_iterator (Xt_xmap xmap) |
| static Xt_xmap_iter | xmap_intersection_get_out_iterator (Xt_xmap xmap) |
| static Xt_xmap | xmap_intersection_copy (Xt_xmap xmap) |
| static void | xmap_intersection_delete (Xt_xmap xmap) |
| static int | xmap_intersection_iterator_next (Xt_xmap_iter iter) |
| static int | xmap_intersection_iterator_get_rank (Xt_xmap_iter iter) |
| static int const * | xmap_intersection_iterator_get_transfer_pos (Xt_xmap_iter iter) |
| static int | xmap_intersection_iterator_get_num_transfer_pos (Xt_xmap_iter iter) |
| static const struct Xt_pos_ext * | xmap_intersection_iterator_get_transfer_pos_ext (Xt_xmap_iter iter) |
| static int | xmap_intersection_iterator_get_num_transfer_pos_ext (Xt_xmap_iter iter) |
| static void | xmap_intersection_iterator_delete (Xt_xmap_iter iter) |
| static int | xmap_intersection_get_max_src_pos (Xt_xmap xmap) |
| static int | xmap_intersection_get_max_dst_pos (Xt_xmap xmap) |
| static Xt_xmap_iter_intersection | xmii (void *iter) |
| static Xt_xmap_intersection | xmi (void *xmap) |
| static struct pos_run | get_pos_run_len (size_t num_pos, const int *restrict pos) |
| static size_t | count_transfer_pos_ext (size_t intersection_size, const int *restrict intersection_pos) |
| static int | generate_dir_transfer_pos_dst (int num_intersections, const struct Xt_com_list intersections[num_intersections], Xt_idxlist mypart_idxlist, int *resCount, struct exchange_data **resSets, Xt_int **indices_to_remove, int *num_indices_to_remove_per_intersection) |
| static void | generate_dir_transfer_pos_src (int num_intersections, const struct Xt_com_list intersections[num_intersections], Xt_idxlist mypart_idxlist, int *resCount, struct exchange_data **resSets, Xt_int *indices_to_remove, int *num_indices_to_remove_per_intersection) |
| static void | exchange_points_to_remove (int num_src_intersections, const struct Xt_com_list src_com[num_src_intersections], int num_dst_intersections, const struct Xt_com_list dst_com[num_dst_intersections], Xt_int **src_indices_to_remove, int *restrict num_src_indices_to_remove_per_intersection, Xt_int *dst_indices_to_remove, int *restrict num_dst_indices_to_remove_per_intersection, int tag_offset, MPI_Comm comm) |
| static int | generate_transfer_pos (struct Xt_xmap_intersection_ *xmap, int num_src_intersections, const struct Xt_com_list src_com[num_src_intersections], int num_dst_intersections, const struct Xt_com_list dst_com[num_dst_intersections], Xt_idxlist src_idxlist_local, Xt_idxlist dst_idxlist_local, MPI_Comm comm) |
| Xt_xmap | xt_xmap_intersection_new (int num_src_intersections, const struct Xt_com_list src_com[num_src_intersections], int num_dst_intersections, const struct Xt_com_list dst_com[num_dst_intersections], Xt_idxlist src_idxlist, Xt_idxlist dst_idxlist, MPI_Comm comm) |
| static void | xmap_intersection_msg_copy (size_t nmsg, struct exchange_data *restrict msg, int *nmsg_copy, struct exchange_data **msg_copy) |
| static void | xmap_intersection_msg_delete (int nmsg, struct exchange_data *msg) |
Variables | |
| static const struct Xt_xmap_iter_vtable | xmap_iterator_intersection_vtable |
| static const struct Xt_xmap_vtable | xmap_intersection_vtable |
Definition in file xt_xmap_intersection.c.
| typedef struct Xt_xmap_intersection_* Xt_xmap_intersection |
Definition at line 161 of file xt_xmap_intersection.c.
| typedef struct Xt_xmap_iter_intersection_* Xt_xmap_iter_intersection |
Definition at line 107 of file xt_xmap_intersection.c.
| anonymous enum |
| Enumerator | |
|---|---|
| bitsPerCoverageElement | |
Definition at line 208 of file xt_xmap_intersection.c.
|
static |
Definition at line 239 of file xt_xmap_intersection.c.
|
static |
|
static |
Definition at line 252 of file xt_xmap_intersection.c.
|
static |
Definition at line 363 of file xt_xmap_intersection.c.
|
static |
Definition at line 552 of file xt_xmap_intersection.c.
|
static |
Definition at line 220 of file xt_xmap_intersection.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 825 of file xt_xmap_intersection.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
|
inlinestatic |
| Xt_xmap xt_xmap_intersection_new | ( | int | num_src_intersections, |
| const struct Xt_com_list | src_com[num_src_intersections], | ||
| int | num_dst_intersections, | ||
| const struct Xt_com_list | dst_com[num_dst_intersections], | ||
| Xt_idxlist | src_idxlist, | ||
| Xt_idxlist | dst_idxlist, | ||
| MPI_Comm | comm | ||
| ) |
constructor for an exchange map
this operation is collective over all processes in comm
it uses the provided intersection information to generate the exchange map
| [in] | num_src_intersections | number of source intersections |
| [in] | src_com | array containing the source intersections with the other processes and their rank |
| [in] | num_dst_intersections | number of destination intersections |
| [in] | dst_com | array containing the destination intersections with the other processes and their rank |
| [in] | src_idxlist | source index list |
| [in] | dst_idxlist | destination index list |
| [in] | comm | MPI communicator that contains all processes that part in the exchange |
Definition at line 595 of file xt_xmap_intersection.c.
|
static |
Definition at line 124 of file xt_xmap_intersection.c.
|
static |
Definition at line 97 of file xt_xmap_intersection.c.
1.8.13