Yet Another eXchange Tool 0.11.2
Loading...
Searching...
No Matches
xt_mpi_internal.h File Reference
#include <stdbool.h>
#include <mpi.h>
#include "xt/xt_mpi.h"
#include "xt_mpi_ddt_cache.h"
#include "core/ppm_visibility.h"
Include dependency graph for xt_mpi_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Xt_mpi_strp_prs_params
 

Enumerations

enum  xt_mpi_tags {
  xt_mpi_tag_exchange_msg , xt_mpi_tag_xmap_dist_dir_src_send , xt_mpi_tag_xmap_dist_dir_dst_send , xt_mpi_tag_xmap_intersection_header_exchange ,
  xt_mpi_tag_xmap_intersection_data_exchange , xt_mpi_num_tags
}
 

Functions

PPM_DSO_INTERNAL size_t xt_disp2ext_count (size_t disp_len, const int *disp)
 
PPM_DSO_INTERNAL size_t xt_disp2ext (size_t disp_len, const int *disp, struct Xt_offset_ext *restrict v)
 
static void xt_init_mpi_strp_prs_params (struct Xt_mpi_strp_prs_params *params, MPI_Datatype old_type, MPI_Comm comm)
 
static void xt_destroy_mpi_strp_prs_params (struct Xt_mpi_strp_prs_params *params)
 
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_stripe (size_t vlen, const struct Xt_offset_ext v[vlen], struct Xt_mpi_strp_prs_params *params)
 
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_astripe (size_t vlen, const struct Xt_aoffset_ext v[vlen], struct Xt_mpi_strp_prs_params *params)
 
PPM_DSO_INTERNAL MPI_Datatype xt_mpi_ddt_block_gen (int count, const int *disp, const int *blocklengths, struct Xt_mpi_strp_prs_params *params)
 
PPM_DSO_INTERNAL void xt_mpi_init (void)
 
PPM_DSO_INTERNAL void xt_mpi_finalize (void)
 
PPM_DSO_INTERNAL MPI_Comm xt_mpi_comm_smart_dup (MPI_Comm comm, int *tag_offset)
 
PPM_DSO_INTERNAL void xt_mpi_comm_smart_dedup (MPI_Comm *comm, int tag_offset)
 
PPM_DSO_INTERNAL bool xt_mpi_test_some (int *restrict num_req, MPI_Request req[], int ops_completed[], MPI_Comm comm)
 

Detailed Description

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_mpi_internal.h.

Enumeration Type Documentation

◆ xt_mpi_tags

Enumerator
xt_mpi_tag_exchange_msg 
xt_mpi_tag_xmap_dist_dir_src_send 
xt_mpi_tag_xmap_dist_dir_dst_send 
xt_mpi_tag_xmap_intersection_header_exchange 
xt_mpi_tag_xmap_intersection_data_exchange 
xt_mpi_num_tags 

Definition at line 63 of file xt_mpi_internal.h.

Function Documentation

◆ xt_destroy_mpi_strp_prs_params()

static void xt_destroy_mpi_strp_prs_params ( struct Xt_mpi_strp_prs_params * params)
inlinestatic

Definition at line 104 of file xt_mpi_internal.h.

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

◆ xt_disp2ext()

PPM_DSO_INTERNAL size_t xt_disp2ext ( size_t disp_len,
const int * disp,
struct Xt_offset_ext *restrict v )

Definition at line 133 of file xt_mpi.c.

Here is the caller graph for this function:

◆ xt_disp2ext_count()

PPM_DSO_INTERNAL size_t xt_disp2ext_count ( size_t disp_len,
const int * disp )

Definition at line 92 of file xt_mpi.c.

Here is the caller graph for this function:

◆ xt_init_mpi_strp_prs_params()

static void xt_init_mpi_strp_prs_params ( struct Xt_mpi_strp_prs_params * params,
MPI_Datatype old_type,
MPI_Comm comm )
inlinestatic

Definition at line 91 of file xt_mpi_internal.h.

Here is the caller graph for this function:

◆ xt_mpi_comm_smart_dedup()

PPM_DSO_INTERNAL void xt_mpi_comm_smart_dedup ( MPI_Comm * comm,
int tag_offset )

Definition at line 386 of file xt_mpi.c.

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

◆ xt_mpi_comm_smart_dup()

PPM_DSO_INTERNAL MPI_Comm xt_mpi_comm_smart_dup ( MPI_Comm comm,
int * tag_offset )

Definition at line 333 of file xt_mpi.c.

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

◆ xt_mpi_ddt_block_gen()

PPM_DSO_INTERNAL MPI_Datatype xt_mpi_ddt_block_gen ( int count,
const int * disp,
const int * blocklengths,
struct Xt_mpi_strp_prs_params * params )

Definition at line 364 of file xt_mpi_ddt_gen.c.

Here is the caller graph for this function:

◆ xt_mpi_finalize()

PPM_DSO_INTERNAL void xt_mpi_finalize ( void )

Definition at line 261 of file xt_mpi.c.

Here is the caller graph for this function:

◆ xt_mpi_init()

PPM_DSO_INTERNAL void xt_mpi_init ( void )

Definition at line 246 of file xt_mpi.c.

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

◆ xt_mpi_parse_astripe()

PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_astripe ( size_t vlen,
const struct Xt_aoffset_ext v[vlen],
struct Xt_mpi_strp_prs_params * params )

◆ xt_mpi_parse_stripe()

PPM_DSO_INTERNAL MPI_Datatype xt_mpi_parse_stripe ( size_t vlen,
const struct Xt_offset_ext v[vlen],
struct Xt_mpi_strp_prs_params * params )
Here is the caller graph for this function:

◆ xt_mpi_test_some()

PPM_DSO_INTERNAL bool xt_mpi_test_some ( int *restrict num_req,
MPI_Request req[],
int ops_completed[],
MPI_Comm comm )

Given an array of MPI requests, call MPI_Test_some and

  1. return if no requests are left unfinished
  2. sort non-finished requests into remaining leading part of array
  3. update count of remaining requests
Parameters
[in,out]num_reqpointer to count of requests
[in,out]reqarray of requests to test (size *num_req)
[out]ops_completedarray of size at least matching req, this is used as temporary scratch space and overwritten
[in]commcommunicator to use for failure notifications