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

Function scan

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 scan

boost::mpi::scan — Compute a prefix reduction of values from all processes in the communicator.

Synopsis

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

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

Description

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

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

Параметры:

<comm>

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

<in_value>

Локальное значение должно сочетаться с локальными значениями других процессов. Для варианта массива<in_values>параметр указывает на<n>локальные значения, которые будут объединены.

<op>

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

<out_value>

Если это предусмотрено, то процесс ith получит значение<op>(in_value<scan>, op(in_value<op>, op(..., in_value[i)) )). Для варианта массива<out_values>содержит указатель на хранилище для<n>выходных значений. Сокращение префикса происходит независимо для каждого из<n>значений, на которые ссылается<in_values>, например, вызов сканирования на массив<n>значений подобен вызову<scan><n>отдельных раз, по одному для каждого местоположения в<in_values>и<out_values>.

Возвращение:

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


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 01:39:51/0.0038118362426758/0