|
Yet Another eXchange Tool
DO_NOT_EDIT_HERE
|
#include <stdlib.h>#include <stdio.h>#include <assert.h>#include <mpi.h>#include "xt/xt_mpi.h"#include "xt_mpi_internal.h"#include "xt/xt_redist_p2p.h"#include "xt_redist_internal.h"#include "xt_redist_single_array_base.h"#include "xt/xt_xmap.h"#include "xt/xt_idxlist.h"#include "core/ppm_xfuncs.h"#include "core/core.h"#include "xt_arithmetic_util.h"Go to the source code of this file.
Data Structures | |
| struct | ext_disp |
Functions | |
| static MPI_Datatype | generate_datatype (const int *transfer_pos, int num_transfer_pos, const int *offsets, MPI_Datatype base_datatype, MPI_Comm comm) |
| static void | generate_msg_infos (int num_msgs, Xt_xmap_iter iter, const int *offsets, MPI_Datatype base_datatype, struct Xt_redist_msg **msgs, MPI_Comm comm) |
| Xt_redist | xt_redist_p2p_off_new (Xt_xmap xmap, const int *src_offsets, const int *dst_offsets, MPI_Datatype datatype) |
| static struct ext_disp | pos2disp (int pos, int num_ext, const struct Xt_offset_ext extents[], const int psum_ext_size[]) |
| static struct ext_disp | pos2disp2 (int pos, int num_ext, const struct Xt_offset_ext extents[], const int psum_ext_size[], int start_ext) |
| static MPI_Datatype | generate_ext_datatype (int num_transfer_pos_ext, const struct Xt_pos_ext transfer_pos_ext[], int num_ext, const struct Xt_offset_ext extents[], const int psum_ext_size[], MPI_Datatype base_datatype, MPI_Comm comm) |
| static void | generate_ext_msg_infos (int num_msgs, Xt_xmap_iter iter, int num_ext, const struct Xt_offset_ext extents[], MPI_Datatype base_datatype, struct Xt_redist_msg **msgs, MPI_Comm comm) |
| Xt_redist | xt_redist_p2p_ext_new (Xt_xmap xmap, int num_src_ext, const struct Xt_offset_ext src_extents[], int num_dst_ext, const struct Xt_offset_ext dst_extents[], MPI_Datatype datatype) |
| static void | aux_gen_simple_block_offsets (int block_offsets[], const int block_sizes[], size_t num_blocks) |
| static MPI_Datatype | generate_block_datatype (const int *transfer_pos, int num_transfer_pos, const int *block_offsets, const int *block_sizes, MPI_Datatype base_datatype, MPI_Comm comm) |
| static void | generate_block_msg_infos (int num_msgs, Xt_xmap_iter iter, const int *block_offsets, const int *block_sizes, int **aux_offsets, size_t num_blocks, MPI_Datatype base_datatype, struct Xt_redist_msg **msgs, MPI_Comm comm) |
| Xt_redist | xt_redist_p2p_blocks_off_new (Xt_xmap xmap, const int *src_block_offsets, const int *src_block_sizes, int src_block_num, const int *dst_block_offsets, const int *dst_block_sizes, int dst_block_num, MPI_Datatype datatype) |
| Xt_redist | xt_redist_p2p_blocks_new (Xt_xmap xmap, const int *src_block_sizes, int src_block_num, const int *dst_block_sizes, int dst_block_num, MPI_Datatype datatype) |
| Xt_redist | xt_redist_p2p_new (Xt_xmap xmap, MPI_Datatype datatype) |
Definition in file xt_redist_p2p.c.
|
inlinestatic |
|
static |
Definition at line 358 of file xt_redist_p2p.c.
|
static |
Definition at line 388 of file xt_redist_p2p.c.
|
static |
Definition at line 69 of file xt_redist_p2p.c.
|
static |
Definition at line 195 of file xt_redist_p2p.c.
|
static |
Definition at line 271 of file xt_redist_p2p.c.
|
static |
Definition at line 98 of file xt_redist_p2p.c.
|
static |
|
static |
| Xt_redist xt_redist_p2p_blocks_new | ( | Xt_xmap | xmap, |
| const int * | src_block_sizes, | ||
| int | src_block_num, | ||
| const int * | dst_block_sizes, | ||
| int | dst_block_num, | ||
| MPI_Datatype | datatype | ||
| ) |
constructor for a redistribution using point to point communication for the exchange, special case: blocks without explicit offsets
| [in] | xmap | exchange map |
| [in] | src_block_sizes | source block lengths in unit of elements |
| [in] | src_block_num | number of src blocks |
| [in] | dst_block_sizes | destination block lengths in unit of elements |
| [in] | dst_block_num | number of dst blocks |
| [in] | datatype | MPI datatype of a single element in data space, all elements have the same |
Definition at line 482 of file xt_redist_p2p.c.
| Xt_redist xt_redist_p2p_blocks_off_new | ( | Xt_xmap | xmap, |
| const int * | src_block_offsets, | ||
| const int * | src_block_sizes, | ||
| int | src_block_num, | ||
| const int * | dst_block_offsets, | ||
| const int * | dst_block_sizes, | ||
| int | dst_block_num, | ||
| MPI_Datatype | datatype | ||
| ) |
constructor for a redistribution using point to point communication for the exchange, special case: elements (which correspond to each idxlist element) are blocks of variable length with corresponding offsets, therefore src_block_num and dst_block_num must match the lengths of the src/dst index lists used for the construction of xmap
| [in] | xmap | exchange map |
| [in] | src_block_offsets | array containing for all source index space positions of xmap the offsets for blocks in data space |
| [in] | src_block_sizes | source block lengths in unit of elements |
| [in] | src_block_num | number of src blocks |
| [in] | dst_block_offsets | array containing for all destination index space positions of xmap the offsets for blocks in data space |
| [in] | dst_block_sizes | destination block lengths in unit of elements |
| [in] | dst_block_num | number of dst blocks |
| [in] | datatype | MPI datatype of a single element in data space, all elements have the same |
Definition at line 426 of file xt_redist_p2p.c.
| Xt_redist xt_redist_p2p_ext_new | ( | Xt_xmap | xmap, |
| int | num_src_ext, | ||
| const struct Xt_offset_ext | src_extents[], | ||
| int | num_dst_ext, | ||
| const struct Xt_offset_ext | dst_extents[], | ||
| MPI_Datatype | datatype | ||
| ) |
constructor for a redistribution using point to point communication for the exchange
| [in] | xmap | exchange map |
| [in] | num_src_ext | number of source extents |
| [in] | src_extents | array of extents describing offsets for every element of the index lists composing the xmap, i.e. { 10, 5, 1 } denotes 5 offsets, namely 10, 11, 12, 13, 14 |
| [in] | num_dst_ext | number of destination extents |
| [in] | dst_extents | array of extents analogous to src_extents |
| [in] | datatype | MPI datatype of single element in the data to be exchanged |
Definition at line 312 of file xt_redist_p2p.c.
constructor for a redistribution using point to point communication for the exchange
| [in] | xmap | exchange map |
| [in] | datatype | MPI datatype of single element in the data to be exchanged |
Definition at line 497 of file xt_redist_p2p.c.
| Xt_redist xt_redist_p2p_off_new | ( | Xt_xmap | xmap, |
| const int * | src_offsets, | ||
| const int * | dst_offsets, | ||
| MPI_Datatype | datatype | ||
| ) |
constructor for a redistribution using point to point communication for the exchange
| [in] | xmap | exchange map |
| [in] | src_offsets | array containing for all elements in the source index list passed to the exchange map the position of the respective element in the input array passed to the exchange routine |
| [in] | dst_offsets | array containing for all elements in the destination index list passed to the exchange map the position of the respective element in the output array passed to the exchange routine |
| [in] | datatype | MPI datatype of single element in the data to be exchanged |
Definition at line 125 of file xt_redist_p2p.c.
1.8.13