Yet Another eXchange Tool
0.9.0
|
exchanging of data based on information provided by redist's More...
Go to the source code of this file.
Classes | |
struct | xt_exchanger_vtable |
struct | Xt_exchanger_ |
Typedefs | |
typedef struct Xt_exchanger_ * | Xt_exchanger |
typedef Xt_exchanger(* | Xt_exchanger_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) |
Functions | |
void | xt_exchanger_s_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data) |
void | xt_exchanger_a_exchange (Xt_exchanger exchanger, const void *src_data, void *dst_data, Xt_request *request) |
Xt_exchanger | xt_exchanger_copy (Xt_exchanger orig, MPI_Comm new_comm, int new_tag_offset) |
void | xt_exchanger_delete (Xt_exchanger) |
void | xt_exchanger_internal_optimize (size_t n, void *msgs, size_t msg_type_size, MPI_Comm comm) |
MPI_Datatype | xt_exchanger_get_MPI_Datatype (Xt_exchanger exchanger, int rank, enum xt_msg_direction direction) |
int | xt_exchanger_get_msg_ranks (Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks) |
exchanging of data based on information provided by redist's
Definition in file xt_exchanger.h.
typedef struct Xt_exchanger_* Xt_exchanger |
Definition at line 63 of file xt_exchanger.h.
typedef Xt_exchanger(* Xt_exchanger_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) |
Definition at line 154 of file xt_exchanger.h.
void xt_exchanger_a_exchange | ( | Xt_exchanger | exchanger, |
const void * | src_data, | ||
void * | dst_data, | ||
Xt_request * | request | ||
) |
Executes a asynchronous data exchange.
[in] | exchanger | exchanger object |
[in] | src_data | source data |
[out] | dat_data | destination data |
Definition at line 76 of file xt_exchanger.c.
Xt_exchanger xt_exchanger_copy | ( | Xt_exchanger | orig, |
MPI_Comm | new_comm, | ||
int | new_tag_offset | ||
) |
Copies an exchange object.
[in] | orig | exchanger object to be copied |
[in] | new_comm | communicator to be used by the new exchanger |
[in] | new_tag_offset | new tag_offset |
Definition at line 61 of file xt_exchanger.c.
void xt_exchanger_delete | ( | Xt_exchanger | exchanger | ) |
Destructor for an exchanger.
Definition at line 66 of file xt_exchanger.c.
MPI_Datatype xt_exchanger_get_MPI_Datatype | ( | Xt_exchanger | exchanger, |
int | rank, | ||
enum xt_msg_direction | direction | ||
) |
gets a copy of the MPI_Datatype used for a specificed message
[in] | exchanger | exchanger object |
[in] | rank | MPI rank |
[in] | direction | specific whether the datatype of an incoming or outgoing message is requested |
Definition at line 134 of file xt_exchanger.c.
int xt_exchanger_get_msg_ranks | ( | Xt_exchanger | exchanger, |
enum xt_msg_direction | direction, | ||
int *restrict * | ranks | ||
) |
Gets the ranks of all processes that receive data from/send data to the local process in the specificed message.
[in] | exchanger | exchanger object |
[in] | direction | specifices whether ranks for the outgoing or incoming messages are requested |
[out] | ranks | ranks for all outgoing/incoming messages |
Definition at line 126 of file xt_exchanger.c.
void xt_exchanger_internal_optimize | ( | size_t | n, |
void * | msgs, | ||
size_t | msg_type_size, | ||
MPI_Comm | comm | ||
) |
Support routine, that reorders a number of provided messages, such that network congestion is potentially reduced.
[in] | n | number of messages |
[in,out] | msgs | messages to be reordered |
[in] | msg_type_size | size of the elements in msgs |
[in] | comm | communicator associated to the messages |
Definition at line 90 of file xt_exchanger.c.
void xt_exchanger_s_exchange | ( | Xt_exchanger | exchanger, |
const void * | src_data, | ||
void * | dst_data | ||
) |
Executes a synchronous data exchange.
[in] | exchanger | exchanger object |
[in] | src_data | source data |
[out] | dat_data | destination data |
Definition at line 71 of file xt_exchanger.c.