Go to the source code of this file.
|
#define | MAX(a, b) ((a) >= (b) ? (a) : (b)) |
|
|
static Xt_exchanger | xt_exchanger_neigh_alltoall_copy (Xt_exchanger exchanger, MPI_Comm newComm, int new_tag_offset) |
|
static void | xt_exchanger_neigh_alltoall_delete (Xt_exchanger exchanger) |
|
static void | xt_exchanger_neigh_alltoall_s_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data) |
|
static void | xt_exchanger_neigh_alltoall_a_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request) |
|
static int | xt_exchanger_neigh_alltoall_get_msg_ranks (Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks) |
|
static MPI_Datatype | xt_exchanger_neigh_alltoall_get_MPI_Datatype (Xt_exchanger exchanger, int rank, enum xt_msg_direction direction, bool do_dup) |
|
static void | xt_exchanger_neigh_alltoall_team_share_default_init (void *share) |
|
static void | xt_exchanger_neigh_alltoall_team_share_destroy (void *share) |
|
static Xt_exchanger_neigh_alltoall | xt_exchanger_neigh_alltoall_alloc (size_t nsend, size_t nrecv, void *exchanger_team_share) |
|
static void | copy_dt (size_t n, const struct Xt_redist_msg *restrict msgs, MPI_Datatype *restrict datatypes, MPI_Comm comm, bool dt_dup) |
|
static void | copy_ranks (size_t n, const struct Xt_redist_msg *restrict msgs, int *restrict ranks) |
|
Xt_exchanger | xt_exchanger_neigh_alltoall_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) |
|
◆ MAX
#define MAX |
( |
| a, |
|
|
| b ) ((a) >= (b) ? (a) : (b)) |
◆ Xt_exchanger_neigh_alltoall
◆ copy_dt()
static void copy_dt |
( |
size_t | n, |
|
|
const struct Xt_redist_msg *restrict | msgs, |
|
|
MPI_Datatype *restrict | datatypes, |
|
|
MPI_Comm | comm, |
|
|
bool | dt_dup ) |
|
static |
◆ copy_ranks()
static void copy_ranks |
( |
size_t | n, |
|
|
const struct Xt_redist_msg *restrict | msgs, |
|
|
int *restrict | ranks ) |
|
static |
◆ xt_exchanger_neigh_alltoall_a_exchange()
static void xt_exchanger_neigh_alltoall_a_exchange |
( |
Xt_exchanger | exchanger, |
|
|
const void * | src_data, |
|
|
void * | dst_data, |
|
|
Xt_request * | request ) |
|
static |
◆ xt_exchanger_neigh_alltoall_alloc()
◆ xt_exchanger_neigh_alltoall_copy()
◆ xt_exchanger_neigh_alltoall_delete()
static void xt_exchanger_neigh_alltoall_delete |
( |
Xt_exchanger | exchanger | ) |
|
|
static |
◆ xt_exchanger_neigh_alltoall_get_MPI_Datatype()
static MPI_Datatype xt_exchanger_neigh_alltoall_get_MPI_Datatype |
( |
Xt_exchanger | exchanger, |
|
|
int | rank, |
|
|
enum xt_msg_direction | direction, |
|
|
bool | do_dup ) |
|
static |
◆ xt_exchanger_neigh_alltoall_get_msg_ranks()
◆ xt_exchanger_neigh_alltoall_new()
constructor for an exchanger using a collective all-to-all operation on a virtual topoloy
- 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 | custom configuration 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
- Examples
- test_exchanger_parallel.c.
Definition at line 186 of file xt_exchanger_neigh_alltoall.c.
◆ xt_exchanger_neigh_alltoall_s_exchange()
static void xt_exchanger_neigh_alltoall_s_exchange |
( |
Xt_exchanger | exchanger, |
|
|
const void * | src_data, |
|
|
void * | dst_data ) |
|
static |
◆ xt_exchanger_neigh_alltoall_team_share_default_init()
static void xt_exchanger_neigh_alltoall_team_share_default_init |
( |
void * | share | ) |
|
|
static |
◆ xt_exchanger_neigh_alltoall_team_share_destroy()
static void xt_exchanger_neigh_alltoall_team_share_destroy |
( |
void * | share | ) |
|
|
static |
◆ filename
const char filename[] = "xt_exchanger_neigh_alltoall.c" |
|
static |
◆ xt_exchanger_neigh_alltoall_vtable
Initial value:= {
.team_share_default_init
}
static int xt_exchanger_neigh_alltoall_get_msg_ranks(Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks)
static void xt_exchanger_neigh_alltoall_a_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request)
static MPI_Datatype xt_exchanger_neigh_alltoall_get_MPI_Datatype(Xt_exchanger exchanger, int rank, enum xt_msg_direction direction, bool do_dup)
static void xt_exchanger_neigh_alltoall_delete(Xt_exchanger exchanger)
static void xt_exchanger_neigh_alltoall_team_share_destroy(void *share)
static Xt_exchanger xt_exchanger_neigh_alltoall_copy(Xt_exchanger exchanger, MPI_Comm newComm, int new_tag_offset)
static void xt_exchanger_neigh_alltoall_team_share_default_init(void *share)
static void xt_exchanger_neigh_alltoall_s_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data)
Definition at line 122 of file xt_exchanger_neigh_alltoall.c.