Yet Another eXchange Tool 0.11.3
|
exchanging of data based on information provided by redist's More...
#include <stdbool.h>
#include <mpi.h>
#include "xt/xt_config.h"
#include "xt/xt_core.h"
#include "xt/xt_request.h"
#include "xt_redist_internal.h"
#include "core/ppm_visibility.h"
Go to the source code of this file.
Classes | |
struct | xt_exchanger_vtable |
struct | Xt_exchanger_ |
Typedefs | |
typedef struct Xt_exchanger_omp_share_ * | Xt_exchanger_omp_share |
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, Xt_config config) |
Enumerations | |
enum | { team_share_align = sizeof (void *) } |
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 69 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, Xt_config config) |
Definition at line 159 of file xt_exchanger.h.
typedef struct Xt_exchanger_omp_share_* Xt_exchanger_omp_share |
Definition at line 67 of file xt_exchanger.h.
anonymous enum |
Enumerator | |
---|---|
team_share_align |
Definition at line 180 of file xt_exchanger.h.
PPM_DSO_INTERNAL void xt_exchanger_a_exchange | ( | Xt_exchanger | exchanger, |
const void * | src_data, | ||
void * | dst_data, | ||
Xt_request * | request ) |
Executes an asynchronous data exchange.
[in] | exchanger | exchanger object |
[in] | src_data | source data |
[out] | dst_data | destination data |
[out] | request | pointer that will reference request object created for duration of exchange |
Definition at line 77 of file xt_exchanger.c.
PPM_DSO_INTERNAL 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 62 of file xt_exchanger.c.
PPM_DSO_INTERNAL Xt_exchanger_omp_share xt_exchanger_create_omp_share | ( | Xt_exchanger | exchanger | ) |
Given an exchanger, create an object holding shared data for multi-threaded invocation.
[in] | exchanger | exchanger to prepare the shared data for. |
Definition at line 99 of file xt_exchanger.c.
PPM_DSO_INTERNAL void xt_exchanger_delete | ( | Xt_exchanger | exchanger | ) |
Destructor for an exchanger.
Definition at line 67 of file xt_exchanger.c.
PPM_DSO_INTERNAL MPI_Datatype xt_exchanger_get_MPI_Datatype | ( | Xt_exchanger | exchanger, |
int | rank, | ||
enum xt_msg_direction | direction, | ||
bool | do_dup ) |
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 |
[in] | do_dup | mpi datatype copy will be dup if true |
Definition at line 93 of file xt_exchanger.c.
PPM_DSO_INTERNAL 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 85 of file xt_exchanger.c.
PPM_DSO_INTERNAL const struct xt_exchanger_vtable * xt_exchanger_new_get_vtable | ( | Xt_exchanger_new | exchanger_new | ) |
Given an exchanger constructor, query the vtable pointer
[in] | exchanger_new | function to create new exchanger to query vtable pointer for |
Definition at line 64 of file xt_exchanger_vtable.c.
PPM_DSO_INTERNAL size_t xt_exchanger_new_team_get_share_size | ( | Xt_exchanger_new | exchanger_new | ) |
Given an exchanger constructor, query the size of shared data for a team.
[in] | exchanger_new | function to create new exchanger to query team shared data size for. |
Definition at line 61 of file xt_exchanger_team.c.
PPM_DSO_INTERNAL void xt_exchanger_new_team_share_default_init | ( | Xt_exchanger_new | exchanger_new, |
void * | share ) |
Given an exchanger constructor, initialize shared data for a team to default values.
[in] | exchanger_new | exchanger constructor to default initialize team shared data for. |
[out] | share | object to initialize |
Definition at line 76 of file xt_exchanger_team.c.
PPM_DSO_INTERNAL void xt_exchanger_new_team_share_destroy | ( | Xt_exchanger_new | exchanger_new, |
void * | share ) |
Given an exchanger constructor, destroy shared data for a team and reset to default values.
This call is collective for all MPI ranks in the communicator the exchanger team was constructed for.
[in] | exchanger_new | exchanger constructor to destroy team shared data for. |
[out] | share | shared state object to destroy |
Definition at line 94 of file xt_exchanger_team.c.
PPM_DSO_INTERNAL 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] | dst_data | destination data |
Definition at line 72 of file xt_exchanger.c.
PPM_DSO_INTERNAL size_t xt_exchanger_team_get_share_size | ( | Xt_exchanger | exchanger | ) |
Given an exchanger, query the size of shared data for a team.
[in] | exchanger | exchanger object to query team shared data size for. |
Definition at line 55 of file xt_exchanger_team.c.
PPM_DSO_INTERNAL void xt_exchanger_team_share_default_init | ( | Xt_exchanger | exchanger, |
void * | share ) |
Given an exchanger, initialize shared data for a team to default values.
[in] | exchanger | exchanger object to default initialize team shared data for. |
[out] | share | object to initialize |
Definition at line 67 of file xt_exchanger_team.c.
PPM_DSO_INTERNAL void xt_exchanger_team_share_destroy | ( | Xt_exchanger | exchanger, |
void * | share ) |
Given an exchanger, destroy shared data for a team and reset to default values. This call is collective for all MPI ranks in the communicator the exchanger was constructed for.
[in] | exchanger | exchanger object to destroy team shared data for. |
[out] | share | object to destroy |
Definition at line 86 of file xt_exchanger_team.c.