Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
xt_exchanger_irecv_isend_packed.c File Reference
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

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

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: