atlas::parallel::GatherScatter class

Constructors, destructors, conversion operators

GatherScatter()
GatherScatter(const std::string& name)
~GatherScatter() virtual

Public functions

auto name() const -> std::string
void setup(const std::string& mpi_comm, const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const idx_t parsize)
Setup.
void setup(const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const idx_t parsize)
Setup.
void setup(const std::string& mpi_comm, const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const int mask[], const idx_t parsize)
Setup.
void setup(const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const int mask[], const idx_t parsize)
Setup.
template<typename DATA_TYPE>
void gather(const DATA_TYPE ldata[], const idx_t lstrides[], const idx_t lshape[], const idx_t lrank, const idx_t lmpl_idxpos[], const idx_t lmpl_rank, DATA_TYPE gdata[], const idx_t gstrides[], const idx_t gshape[], const idx_t grank, const idx_t gmpl_idxpos[], const idx_t gmpl_rank, const idx_t root) const
template<typename DATA_TYPE>
void gather(const DATA_TYPE ldata[], const idx_t lvar_strides[], const idx_t lvar_shape[], const idx_t lvar_rank, DATA_TYPE gdata[], const idx_t gvar_strides[], const idx_t gvar_shape[], const idx_t gvar_rank, const idx_t root = 0) const
template<typename DATA_TYPE>
void gather(parallel::Field<DATA_TYPE const> lfields[], parallel::Field<DATA_TYPE> gfields[], const idx_t nb_fields, const idx_t root = 0) const
template<typename DATA_TYPE, int LRANK, int GRANK>
void gather(const array::ArrayView<DATA_TYPE, LRANK>& ldata, array::ArrayView<DATA_TYPE, GRANK>& gdata, const idx_t root = 0) const
template<typename DATA_TYPE>
void scatter(parallel::Field<DATA_TYPE const> gfields[], parallel::Field<DATA_TYPE> lfields[], const idx_t nb_fields, const idx_t root = 0) const
template<typename DATA_TYPE>
void scatter(const DATA_TYPE gdata[], const idx_t gstrides[], const idx_t gshape[], const idx_t grank, const idx_t gmpl_idxpos[], const idx_t gmpl_rank, DATA_TYPE ldata[], const idx_t lstrides[], const idx_t lshape[], const idx_t lrank, const idx_t lmpl_idxpos[], const idx_t lmpl_rank, const idx_t root) const
template<typename DATA_TYPE>
void scatter(const DATA_TYPE gdata[], const idx_t gvar_strides[], const idx_t gvar_shape[], const idx_t gvar_rank, DATA_TYPE ldata[], const idx_t lvar_strides[], const idx_t lvar_shape[], const idx_t lvar_rank, const idx_t root = 0) const
template<typename DATA_TYPE, int GRANK, int LRANK>
void scatter(const array::ArrayView<DATA_TYPE, GRANK>& gdata, array::ArrayView<DATA_TYPE, LRANK>& ldata, const idx_t root = 0) const
auto glb_dof() const -> gidx_t
auto loc_dof() const -> idx_t
auto comm() const -> const mpi::Comm&

Function documentation

void atlas::parallel::GatherScatter::setup(const std::string& mpi_comm, const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const idx_t parsize)

Setup.

Parameters
mpi_comm in Name of mpi communicator
part in List of partitions
remote_idx in List of local indices on remote partitions
base in values of remote_idx start at "base"
glb_idx in List of global indices
parsize in size of given lists

void atlas::parallel::GatherScatter::setup(const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const idx_t parsize)

Setup.

Parameters
part in List of partitions
remote_idx in List of local indices on remote partitions
base in values of remote_idx start at "base"
glb_idx in List of global indices
parsize in size of given lists

void atlas::parallel::GatherScatter::setup(const std::string& mpi_comm, const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const int mask[], const idx_t parsize)

Setup.

Parameters
mpi_comm in Name of mpi communicator
part in List of partitions
remote_idx in List of local indices on remote partitions
base in values of remote_idx start at "base"
glb_idx in List of global indices
mask in Mask indices not to include in the communication pattern (0=include,1=exclude)
parsize in size of given lists

void atlas::parallel::GatherScatter::setup(const int part[], const idx_t remote_idx[], const int base, const gidx_t glb_idx[], const int mask[], const idx_t parsize)

Setup.

Parameters
part in List of partitions
remote_idx in List of local indices on remote partitions
base in values of remote_idx start at "base"
glb_idx in List of global indices
mask in Mask indices not to include in the communication pattern (0=include,1=exclude)
parsize in size of given lists

template<typename DATA_TYPE>
void atlas::parallel::GatherScatter::gather(parallel::Field<DATA_TYPE const> lfields[], parallel::Field<DATA_TYPE> gfields[], const idx_t nb_fields, const idx_t root = 0) const

Pack

Gather

Unpack

template<typename DATA_TYPE>
void atlas::parallel::GatherScatter::scatter(parallel::Field<DATA_TYPE const> gfields[], parallel::Field<DATA_TYPE> lfields[], const idx_t nb_fields, const idx_t root = 0) const

Pack

Scatter

Unpack

This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.