Function all_to_all
boost::mpi::all_to_all — Send data from every process to every other process.
Synopsis
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);
Description
<all_to_all
>— коллективный алгоритм, передающий<p
>От каждого процесса к каждому другому процессу. В процессе i значение jth вектора<in_values
>отправляется в процесс j и помещается в положение ith вектора<out_values
>в процессе<j
>. Тип<T
>значений может быть любым типом, который является сериализуемым или имеет связанный тип данных MPI. Если<n
>предусмотрено, то массивы<n
>значений будут перенесены из одного процесса в другой.
Когда тип<T
>имеет связанный тип данных MPI, эта процедура вызывает<MPI_Alltoall
>для рассеивания значений.
Параметры: | <comm > | Коммуникатор, над которым происходит всеобщая коммуникация. | <in_values > | Вектор или указатель на хранилище, который содержит значения для отправки в каждый процесс, индексируемые идентификационным номером процесса. | <out_values > | Вектор или указатель на хранилище, который будет обновляться, чтобы содержать значения, полученные от других процессов. Значение jth в<out_values >будет исходить от procss с рангом j . |
|