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

Function 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 reduce

boost::mpi::reduce — Combine the values stored by each process into a single value at the root.

Synopsis

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

template<typename T, typename Op> 
  void reduce(const communicator & comm, const T & in_value, T & out_value, 
              Op op, int root);
template<typename T, typename Op> 
  void reduce(const communicator & comm, const T & in_value, Op op, int root);
template<typename T, typename Op> 
  void reduce(const communicator & comm, const T * in_values, int n, 
              T * out_values, Op op, int root);
template<typename T, typename Op> 
  void reduce(const communicator & comm, const T * in_values, int n, Op op, 
              int root);

Description

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

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

Параметры:

comm

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

<in_value>

Локальное значение должно сочетаться с локальными значениями каждого другого процесса. Для уменьшения массивов<in_values>содержит указатель на локальные значения. В этом случае<n>— число значений, которое будет уменьшено. Сокращение происходит независимо для каждого из<n>значений, на которые ссылается<in_values>, например, вызов уменьшения на массив<n>значений подобен вызову<reduce><n>отдельных раз, по одному для каждого местоположения в<in_values>и<out_values>.

<op>

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

<out_value>

Получит результат операции по сокращению, но только для процесса<root>. Некорневые процессы могут опускать параметр; если они выберут параметр, он будет неизменным. Для уменьшения массивов<out_values>содержит указатель на хранилище для выходных значений.

<root>

Идентификационный номер процесса, который получит окончательное комбинированное значение. Это значение должно быть одинаковым для всех процессов.


PrevUpHomeNext

Статья Function 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 03:47:36/0.0059671401977539/1