|
Yet Another eXchange Tool
0.9.0
|
#include <string.h>#include <stdlib.h>#include "xt/xt_mpi.h"#include "xt_exchanger.h"#include "xt_exchanger_irecv_isend.h"#include "xt_exchanger_mix_isend_irecv.h"#include "xt_exchanger_irecv_isend_packed.h"#include "xt_exchanger_neigh_alltoall.h"Go to the source code of this file.
Functions | |
| Xt_exchanger | xt_exchanger_copy (Xt_exchanger exchanger, MPI_Comm new_comm, int new_tag_offset) |
| void | xt_exchanger_delete (Xt_exchanger exchanger) |
| 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) |
| static int | compare_exchange_messages (const void *msg_a, const void *msg_b) |
| void | xt_exchanger_internal_optimize (size_t n, void *msgs, size_t msg_type_size, MPI_Comm comm) |
| int | xt_exchanger_get_msg_ranks (Xt_exchanger exchanger, enum xt_msg_direction direction, int *restrict *ranks) |
| MPI_Datatype | xt_exchanger_get_MPI_Datatype (Xt_exchanger exchanger, int rank, enum xt_msg_direction direction) |
Definition in file xt_exchanger.c.
|
static |
| 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.