Yet Another eXchange Tool  DO_NOT_EDIT_HERE
Data Structures | Typedefs | Functions | Variables
xt_redist_single_array_base.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <mpi.h>
#include "xt/xt_mpi.h"
#include "xt_mpi_internal.h"
#include "xt_redist_single_array_base.h"
#include "xt_redist_internal.h"
#include "xt/xt_xmap.h"
#include "xt/xt_idxlist.h"
#include "core/ppm_xfuncs.h"
#include "core/core.h"
#include "xt_exchanger.h"
Include dependency graph for xt_redist_single_array_base.c:

Go to the source code of this file.

Data Structures

struct  Xt_redist_sab_
 

Typedefs

typedef struct Xt_redist_sab_Xt_redist_sab
 

Functions

static Xt_redist redist_sab_copy (Xt_redist redist)
 
static void redist_sab_delete (Xt_redist redist)
 
static void redist_sab_s_exchange (Xt_redist redist, int num_arrays, const void **src_data, void **dst_data)
 
static void redist_sab_s_exchange1 (Xt_redist redist, const void *src_data, void *dst_data)
 
static MPI_Datatype redist_sab_get_send_MPI_Datatype (Xt_redist redist, int rank)
 
static MPI_Datatype redist_sab_get_recv_MPI_Datatype (Xt_redist redist, int rank)
 
static int redist_collection_get_msg_ranks (Xt_redist redist, enum xt_msg_direction direction, int **ranks)
 
static MPI_Comm redist_sab_get_MPI_Comm (Xt_redist redist)
 
Xt_redist xt_redist_single_array_base_new (int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm)
 
static Xt_redist_sab xrsab (void *redist)
 

Variables

static const struct xt_redist_vtable redist_sab_vtable
 

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_redist_single_array_base.c.

Typedef Documentation

◆ Xt_redist_sab

typedef struct Xt_redist_sab_* Xt_redist_sab

Definition at line 103 of file xt_redist_single_array_base.c.

Function Documentation

◆ redist_collection_get_msg_ranks()

static int redist_collection_get_msg_ranks ( Xt_redist  redist,
enum xt_msg_direction  direction,
int **  ranks 
)
static

Definition at line 207 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_copy()

static Xt_redist redist_sab_copy ( Xt_redist  redist)
static

Definition at line 145 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_delete()

static void redist_sab_delete ( Xt_redist  redist)
static

Definition at line 161 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_get_MPI_Comm()

static MPI_Comm redist_sab_get_MPI_Comm ( Xt_redist  redist)
static

Definition at line 216 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_get_recv_MPI_Datatype()

static MPI_Datatype redist_sab_get_recv_MPI_Datatype ( Xt_redist  redist,
int  rank 
)
static

Definition at line 201 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_get_send_MPI_Datatype()

static MPI_Datatype redist_sab_get_send_MPI_Datatype ( Xt_redist  redist,
int  rank 
)
static

Definition at line 195 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_s_exchange()

static void redist_sab_s_exchange ( Xt_redist  redist,
int  num_arrays,
const void **  src_data,
void **  dst_data 
)
static

Definition at line 174 of file xt_redist_single_array_base.c.

Here is the call graph for this function:

◆ redist_sab_s_exchange1()

static void redist_sab_s_exchange1 ( Xt_redist  redist,
const void *  src_data,
void *  dst_data 
)
static

Definition at line 187 of file xt_redist_single_array_base.c.

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

◆ xrsab()

static Xt_redist_sab xrsab ( void *  redist)
inlinestatic

Definition at line 139 of file xt_redist_single_array_base.c.

Here is the caller graph for this function:

◆ xt_redist_single_array_base_new()

Xt_redist xt_redist_single_array_base_new ( int  nsend,
int  nrecv,
struct Xt_redist_msg send_msgs,
struct Xt_redist_msg recv_msgs,
MPI_Comm  comm 
)

constructor for a redistribution using point to point communication for the exchange

Parameters
[in]nsendnumber of send messages
[in]nrecvnumber of receive messages
[in]send_msgsarray with send messages
[in]recv_msgsarray with receive messages
[in]commMPI communicator that is to be used for the communication
Remarks
The send_msgs and recv_msgs arrays will be used directly without copying them and must be malloc'ed therefore. When the destructor xt_redist_delete is called, the arrays, the associated MPI data types, and the MPI communicator will be free'd via free(), MPI_Type_free() and MPI_Comm_free() respectively.

Definition at line 117 of file xt_redist_single_array_base.c.

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

Variable Documentation

◆ redist_sab_vtable

const struct xt_redist_vtable redist_sab_vtable
static
Initial value:
= {
.copy = redist_sab_copy,
.delete = redist_sab_delete,
.s_exchange = redist_sab_s_exchange,
.s_exchange1 = redist_sab_s_exchange1,
.get_send_MPI_Datatype = redist_sab_get_send_MPI_Datatype,
.get_recv_MPI_Datatype = redist_sab_get_recv_MPI_Datatype,
.get_MPI_Comm = redist_sab_get_MPI_Comm
}
static MPI_Datatype redist_sab_get_recv_MPI_Datatype(Xt_redist redist, int rank)
static void redist_sab_s_exchange1(Xt_redist redist, const void *src_data, void *dst_data)
static void redist_sab_s_exchange(Xt_redist redist, int num_arrays, const void **src_data, void **dst_data)
static MPI_Comm redist_sab_get_MPI_Comm(Xt_redist redist)
static int redist_collection_get_msg_ranks(Xt_redist redist, enum xt_msg_direction direction, int **ranks)
static void redist_sab_delete(Xt_redist redist)
static Xt_redist redist_sab_copy(Xt_redist redist)
static MPI_Datatype redist_sab_get_send_MPI_Datatype(Xt_redist redist, int rank)

Definition at line 92 of file xt_redist_single_array_base.c.