TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
#include <nda/mpi/gather.hpp>
Specialization of the mpi::lazy
class for nda::Array types and the mpi::tag::gather
tag.
An object of this class is returned when gathering nda::Array objects across multiple MPI processes.
It models an nda::ArrayInitializer, that means it can be used to initialize and assign to nda::basic_array and nda::basic_array_view objects. The target array will be a concatenation of the input arrays along the first dimension (see nda::concatenate).
See nda::mpi_gather for an example.
A | nda::Array type to be gathered. |
Definition at line 50 of file gather.hpp.
Public Member Functions | |
template<nda::Array T> | |
void | invoke (T &&target) const |
Execute the lazy MPI operation and write the result to a target array/view. | |
auto | shape () const |
Compute the shape of the target array. | |
Public Attributes | |
const bool | all {false} |
Should all processes receive the result. | |
mpi::communicator | comm |
MPI communicator. | |
const_view_type | rhs |
View of the array/view to be gathered. | |
const int | root {0} |
MPI root process. | |
|
inline |
Execute the lazy MPI operation and write the result to a target array/view.
T | nda::Array type of the target array/view. |
target | Target array/view. |
Definition at line 98 of file gather.hpp.
|
inlinenodiscard |
Compute the shape of the target array.
It is assumed that the shape of the input array is the same for all MPI processes except for the first dimension. The target shape will then be the same as the input shape, except that the extent of its first dimension will be the sum of the extents of the input arrays along the first dimension.
Definition at line 80 of file gather.hpp.