Yet Another eXchange Tool  0.9.0
Classes | Typedefs | Functions | Variables
xt_exchanger_simple_base.c File Reference
#include <assert.h>
#include <mpi.h>
#include "core/core.h"
#include "core/ppm_xfuncs.h"
#include "xt/xt_mpi.h"
#include "xt_mpi_internal.h"
#include "xt_redist_internal.h"
#include "xt_exchanger.h"
#include "xt_exchanger_simple_base.h"
Include dependency graph for xt_exchanger_simple_base.c:

Go to the source code of this file.

Classes

struct  Xt_exchanger_simple_base_
 

Typedefs

typedef struct Xt_exchanger_simple_base_Xt_exchanger_simple_base
 

Functions

static Xt_exchanger xt_exchanger_simple_base_copy (Xt_exchanger exchanger, MPI_Comm newComm, int new_tag_offset)
 
static void xt_exchanger_simple_base_delete (Xt_exchanger exchanger)
 
static void xt_exchanger_simple_base_s_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data)
 
static void xt_exchanger_simple_base_a_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request)
 
static int xt_exchanger_simple_base_get_msg_ranks (Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks)
 
static MPI_Datatype xt_exchanger_simple_base_get_MPI_Datatype (Xt_exchanger exchanger, int rank, enum xt_msg_direction direction)
 
static Xt_exchanger_simple_base xt_exchanger_simple_base_alloc (size_t nmsg)
 
Xt_exchanger xt_exchanger_simple_base_new (int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset, xt_simple_s_exchange_func s_func, xt_simple_a_exchange_func a_func)
 

Variables

static const struct xt_exchanger_vtable exchanger_simple_base_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_exchanger_simple_base.c.

Typedef Documentation

◆ Xt_exchanger_simple_base

Definition at line 92 of file xt_exchanger_simple_base.c.

Function Documentation

◆ xt_exchanger_simple_base_a_exchange()

static void xt_exchanger_simple_base_a_exchange ( Xt_exchanger  exchanger,
const void *  src_data,
void *  dst_data,
Xt_request request 
)
static

Definition at line 215 of file xt_exchanger_simple_base.c.

◆ xt_exchanger_simple_base_alloc()

static Xt_exchanger_simple_base xt_exchanger_simple_base_alloc ( size_t  nmsg)
static

Definition at line 107 of file xt_exchanger_simple_base.c.

Here is the caller graph for this function:

◆ xt_exchanger_simple_base_copy()

static Xt_exchanger xt_exchanger_simple_base_copy ( Xt_exchanger  exchanger,
MPI_Comm  newComm,
int  new_tag_offset 
)
static

Definition at line 164 of file xt_exchanger_simple_base.c.

Here is the call graph for this function:

◆ xt_exchanger_simple_base_delete()

static void xt_exchanger_simple_base_delete ( Xt_exchanger  exchanger)
static

Definition at line 189 of file xt_exchanger_simple_base.c.

Here is the call graph for this function:

◆ xt_exchanger_simple_base_get_MPI_Datatype()

static MPI_Datatype xt_exchanger_simple_base_get_MPI_Datatype ( Xt_exchanger  exchanger,
int  rank,
enum xt_msg_direction  direction 
)
static

Definition at line 236 of file xt_exchanger_simple_base.c.

◆ xt_exchanger_simple_base_get_msg_ranks()

static int xt_exchanger_simple_base_get_msg_ranks ( Xt_exchanger  exchanger,
enum xt_msg_direction  direction,
int *restrict *  ranks 
)
static

Definition at line 257 of file xt_exchanger_simple_base.c.

◆ xt_exchanger_simple_base_new()

Xt_exchanger xt_exchanger_simple_base_new ( int  nsend,
int  nrecv,
const struct Xt_redist_msg send_msgs,
const struct Xt_redist_msg recv_msgs,
MPI_Comm  comm,
int  tag_offset,
xt_simple_s_exchange_func  s_func,
xt_simple_a_exchange_func  a_func 
)

constructor for an exchanger using asynchronous send and recv

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
[in]tag_offsettag
[in]s_funcfunction pointer used for synchronous exchanges
[in]a_funcfunction pointer used for asynchronous exchanges
Remarks
tag_offset + xt_mpi_tag_exchange_msg must not be used on comm by any other part of the program during the lifetime of the created exchanger object

note: tag_offset + xt_mpi_tag_exchange_msg must not be used on comm by any other part of the program during the lifetime of the created exchanger object

Definition at line 118 of file xt_exchanger_simple_base.c.

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

◆ xt_exchanger_simple_base_s_exchange()

static void xt_exchanger_simple_base_s_exchange ( Xt_exchanger  exchanger,
const void *  src_data,
void *  dst_data 
)
static

Definition at line 201 of file xt_exchanger_simple_base.c.

Variable Documentation

◆ exchanger_simple_base_vtable

const struct xt_exchanger_vtable exchanger_simple_base_vtable
static
Initial value:
= {
}
static void xt_exchanger_simple_base_a_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request)
static MPI_Datatype xt_exchanger_simple_base_get_MPI_Datatype(Xt_exchanger exchanger, int rank, enum xt_msg_direction direction)
static int xt_exchanger_simple_base_get_msg_ranks(Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks)
static void xt_exchanger_simple_base_delete(Xt_exchanger exchanger)
static Xt_exchanger xt_exchanger_simple_base_copy(Xt_exchanger exchanger, MPI_Comm newComm, int new_tag_offset)
static void xt_exchanger_simple_base_s_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data)

Definition at line 78 of file xt_exchanger_simple_base.c.