#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"
Go to the source code of this file.
|
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) |
|
◆ Xt_exchanger_simple_base
◆ 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 |
◆ xt_exchanger_simple_base_alloc()
◆ xt_exchanger_simple_base_copy()
◆ xt_exchanger_simple_base_delete()
static void xt_exchanger_simple_base_delete |
( |
Xt_exchanger |
exchanger | ) |
|
|
static |
◆ xt_exchanger_simple_base_get_MPI_Datatype()
◆ xt_exchanger_simple_base_get_msg_ranks()
◆ xt_exchanger_simple_base_new()
constructor for an exchanger using asynchronous send and recv
- 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] | s_func | function pointer used for synchronous exchanges |
[in] | a_func | function pointer used for asynchronous exchanges |
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.
◆ 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 |
◆ exchanger_simple_base_vtable
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.