Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Function all_reduce

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Function all_reduce

boost::mpi::all_reduce — Combine the values stored by each process into a single value available to all processes.

Synopsis

// In header: <boost/mpi/collectives.hpp>

template<typename T, typename Op> 
  void all_reduce(const communicator & comm, const T * value, int n, 
                  T * out_value, Op op);
template<typename T, typename Op> 
  void all_reduce(const communicator & comm, const T & value, T & out_value, 
                  Op op);
template<typename T, typename Op> 
  T all_reduce(const communicator & comm, const T & value, Op op);
template<typename T, typename Op> 
  void all_reduce(const communicator & comm, inplace_t< T * > value, int n, 
                  Op op);
template<typename T, typename Op> 
  void all_reduce(const communicator & comm, inplace_t< T > value, Op op);

Description

all_reduce представляет собой коллективный алгоритм, который объединяет значения, сохраненные каждым процессом, в одно значение, доступное для всех процессов. Значения объединяются определенным пользователем способом, заданным через объект функции. Тип T значений может быть любым типом, который является сериализуемым или имеет связанный тип данных MPI. Можно рассматривать эту операцию как all_gather, за которой следует std::accumulate() по значениям сбора и с использованием операции op.

Когда тип T имеет связанный тип данных MPI, эта процедура вызывает MPI_Allreduce для выполнения сокращения. По возможности будут использоваться встроенные операции MPI; в противном случае all_reduce() создаст пользовательский MPI_ Для звонка в MPI_Allreduce.

Если обернуть в объект inplace_t, объедините использование как входного, так и $c out_value и локальное значение будет перезаписано (для обертки предусмотрена функция удобства inplace).

Параметры:

комм

Коммуникатор, над которым произойдет сокращение.

n

Указывается размер буферов типа массива.

op

Бинарная операция, которая объединяет два значения типа T и возвращает третье значение типа T. Для типов T, связанных с типами данных MPI, op будет либо переведен в MPI_Op (через MPI_Op_create), либо, по возможности, отображен непосредственно на встроенную операцию MPI. См. is_mpi_op в заголовке Operations.hpp для более подробной информации об этом отображении. Для любой невстроенной операции коммутативность будет определяться чертой is_commmutative (также в Operations.hpp): пользователям рекомендуется отмечать коммутативные операции как таковые, поскольку это дает реализации дополнительную широту для оптимизации операции сокращения.

out_value

Получит результат восстановительной операции. Если этот параметр опущен, исходящее значение будет возвращено.

значение

Локальное значение должно сочетаться с локальными значениями каждого другого процесса. Для уменьшения массивов in_values является указателем на локальные значения, подлежащие уменьшению, а n - число значений, подлежащих уменьшению. См. Reduce для получения дополнительной информации.

Возврат:

Если параметр out_value не указан, то результат операции восстановления возвращается.


PrevUpHomeNext

Статья Function all_reduce раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:33:38/0.0059070587158203/1