Go to the source code of this file.
|
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) |
|
◆ anonymous enum
◆ finalize_packed_a_exchange()
static void finalize_packed_a_exchange |
( |
Xt_request | request, |
|
|
void * | buf ) |
|
static |
◆ 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 |
◆ get_buffer_size()
◆ 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 |
◆ 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 |
◆ xt_exchanger_irecv_isend_packed_create_omp_share()
◆ xt_exchanger_irecv_isend_packed_new()
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] | nsend | number of send messages |
[in] | nrecv | number of receive messages |
[in] | send_msgs | array with send messages |
[in] | recv_msgs | array with receive messages |
[in] | comm | MPI communicator that is to be used for the communication |
[in] | tag_offset | tag |
[in] | config | optional customization parameters |
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.
◆ 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 |