...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::mpi::all_to_all — Send data from every process to every other process.
// In header: <boost/mpi/collectives.hpp> template<typename T> void all_to_all(const communicator & comm, const std::vector< T > & in_values, std::vector< T > & out_values); template<typename T> void all_to_all(const communicator & comm, const T * in_values, T * out_values); template<typename T> void all_to_all(const communicator & comm, const std::vector< T > & in_values, int n, std::vector< T > & out_values); template<typename T> void all_to_all(const communicator & comm, const T * in_values, int n, T * out_values);
all_to_all
is a collective algorithm that transmits p
values from every process to every other process. On process i, jth value of the in_values
vector is sent to process j and placed in the ith position of the out_values
vector in process j
. The type T
of the values may be any type that is serializable or has an associated MPI data type. If n
is provided, then arrays of n
values will be transferred from one process to another.
When the type T
has an associated MPI data type, this routine invokes MPI_Alltoall
to scatter the values.
Parameters: |
|