Yet Another eXchange Tool  DO_NOT_EDIT_HERE
Functions | Variables
xt_exchanger.c File Reference
#include <string.h>
#include <stdlib.h>
#include "xt_exchanger.h"
#include "xt_exchanger_irecv_isend.h"
#include "xt_exchanger_mix_isend_irecv.h"
#include "xt_exchanger_irecv_isend_packed.h"
Include dependency graph for xt_exchanger.c:

Go to the source code of this file.

Functions

Xt_exchanger xt_exchanger_copy (Xt_exchanger exchanger, MPI_Comm new_comm, int new_tag_offset)
 
void xt_exchanger_delete (Xt_exchanger exchanger)
 
void xt_exchanger_s_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data)
 
static int compare_exchange_messages (const void *msg_a, const void *msg_b)
 
void xt_exchanger_internal_optimize (size_t n, void *msgs, size_t msg_type_size, MPI_Comm comm)
 
int xt_exchanger_get_msg_ranks (Xt_exchanger exchanger, enum xt_msg_direction direction, int **ranks)
 
MPI_Datatype xt_exchanger_get_MPI_Datatype (Xt_exchanger exchanger, int rank, enum xt_msg_direction direction)
 

Variables

Xt_exchanger(* xt_exchanger_default_constructor )(int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
 

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

Function Documentation

◆ compare_exchange_messages()

static int compare_exchange_messages ( const void *  msg_a,
const void *  msg_b 
)
static

Definition at line 80 of file xt_exchanger.c.

Here is the caller graph for this function:

◆ xt_exchanger_copy()

Xt_exchanger xt_exchanger_copy ( Xt_exchanger  exchanger,
MPI_Comm  new_comm,
int  new_tag_offset 
)

Definition at line 65 of file xt_exchanger.c.

Here is the caller graph for this function:

◆ xt_exchanger_delete()

void xt_exchanger_delete ( Xt_exchanger  exchanger)
Examples:
test_exchanger_parallel.c.

Definition at line 70 of file xt_exchanger.c.

Here is the caller graph for this function:

◆ xt_exchanger_get_MPI_Datatype()

MPI_Datatype xt_exchanger_get_MPI_Datatype ( Xt_exchanger  exchanger,
int  rank,
enum xt_msg_direction  direction 
)

Definition at line 128 of file xt_exchanger.c.

Here is the caller graph for this function:

◆ xt_exchanger_get_msg_ranks()

int xt_exchanger_get_msg_ranks ( Xt_exchanger  exchanger,
enum xt_msg_direction  direction,
int **  ranks 
)

Definition at line 120 of file xt_exchanger.c.

Here is the caller graph for this function:

◆ xt_exchanger_internal_optimize()

void xt_exchanger_internal_optimize ( size_t  n,
void *  msgs,
size_t  msg_type_size,
MPI_Comm  comm 
)

Definition at line 87 of file xt_exchanger.c.

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

◆ xt_exchanger_s_exchange()

void xt_exchanger_s_exchange ( Xt_exchanger  exchanger,
const void *  src_data,
void *  dst_data 
)
Examples:
test_exchanger_parallel.c.

Definition at line 75 of file xt_exchanger.c.

Here is the caller graph for this function:

Variable Documentation

◆ xt_exchanger_default_constructor

Xt_exchanger(* xt_exchanger_default_constructor) (int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Initial value:
=
Xt_exchanger xt_exchanger_mix_isend_irecv_new(int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Parameters
tag_offsettag 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 59 of file xt_exchanger.c.