Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
xt_exchanger_irecv_isend_packed.c File Reference
#include <mpi.h>
#include "core/ppm_xfuncs.h"
#include "xt/xt_mpi.h"
#include "xt/xt_request_msgs_ebuf.h"
#include "xt_request_msgs_ebuf_internal.h"
#include "xt_config_internal.h"
#include "xt_mpi_internal.h"
#include "xt_redist_internal.h"
#include "xt_exchanger_irecv_isend_packed.h"
#include "xt_exchanger_simple_base.h"
Include dependency graph for xt_exchanger_irecv_isend_packed.c:

Go to the source code of this file.

Classes

struct  inventory_header
 

Enumerations

enum  { AUTO_ALLOC_SIZE = 32 }
 

Functions

static size_t get_buffer_offsets (size_t *restrict buf_ofs, int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm)
 
static size_t get_buffer_size (int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm)
 
static void start_packed_transfer (unsigned char *buffer, int send_start, const size_t *buf_ofs, const void *src_data, int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset, MPI_Request *requests)
 
static void xt_exchanger_irecv_isend_packed_s_exchange (const void *src_data, void *dst_data, int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, int tag_offset, MPI_Comm comm)
 
static void finalize_packed_a_exchange (Xt_request request, void *buf)
 
static void xt_exchanger_irecv_isend_packed_a_exchange (const void *src_data, void *dst_data, int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, int tag_offset, MPI_Comm comm, Xt_request *request)
 
static Xt_exchanger_omp_share xt_exchanger_irecv_isend_packed_create_omp_share (int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm)
 
Xt_exchanger xt_exchanger_irecv_isend_packed_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_config config)
 

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

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
AUTO_ALLOC_SIZE 

Definition at line 151 of file xt_exchanger_irecv_isend_packed.c.

Function Documentation

◆ finalize_packed_a_exchange()

static void finalize_packed_a_exchange ( Xt_request request,
void * buf )
static

Definition at line 269 of file xt_exchanger_irecv_isend_packed.c.

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

◆ get_buffer_offsets()

static size_t get_buffer_offsets ( size_t *restrict buf_ofs,
int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
MPI_Comm comm )
static

Definition at line 74 of file xt_exchanger_irecv_isend_packed.c.

Here is the caller graph for this function:

◆ get_buffer_size()

static size_t get_buffer_size ( int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
MPI_Comm comm )
static

Definition at line 99 of file xt_exchanger_irecv_isend_packed.c.

Here is the caller graph for this function:

◆ start_packed_transfer()

static void start_packed_transfer ( unsigned char * buffer,
int send_start,
const size_t * buf_ofs,
const void * src_data,
int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
MPI_Comm comm,
int tag_offset,
MPI_Request * requests )
static

Definition at line 121 of file xt_exchanger_irecv_isend_packed.c.

Here is the caller graph for this function:

◆ xt_exchanger_irecv_isend_packed_a_exchange()

static void xt_exchanger_irecv_isend_packed_a_exchange ( const void * src_data,
void * dst_data,
int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
int tag_offset,
MPI_Comm comm,
Xt_request * request )
static

Definition at line 291 of file xt_exchanger_irecv_isend_packed.c.

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

◆ xt_exchanger_irecv_isend_packed_create_omp_share()

static Xt_exchanger_omp_share xt_exchanger_irecv_isend_packed_create_omp_share ( int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
MPI_Comm comm )
static

Definition at line 456 of file xt_exchanger_irecv_isend_packed.c.

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

◆ xt_exchanger_irecv_isend_packed_new()

Xt_exchanger xt_exchanger_irecv_isend_packed_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_config config )

Constructor for an exchanger using asynchronous send and recv, the data is is packed before/unpacked after the exchange. This ensures that the data being handled by MPI is in one contiguous buffer.

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]configoptional customization parameters
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

Examples
test_exchanger_parallel.c.

Definition at line 477 of file xt_exchanger_irecv_isend_packed.c.

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

◆ xt_exchanger_irecv_isend_packed_s_exchange()

static void xt_exchanger_irecv_isend_packed_s_exchange ( const void * src_data,
void * dst_data,
int nsend,
int nrecv,
const struct Xt_redist_msg * send_msgs,
const struct Xt_redist_msg * recv_msgs,
int tag_offset,
MPI_Comm comm )
static

Definition at line 154 of file xt_exchanger_irecv_isend_packed.c.

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