Передача данных от всех процессов одному процессу. Операции редукции

В операции передачи данных от всех процессов одному процессу над собираемыми значениями осуществляется та или иная обработка данных (для подчеркивания последнего момента данная операция еще именуется операцией редукции данных). Как и ранее, реализация операции редукции при помощи обычных парных операций передачи данных является неэффективной и достаточно трудоемкой. Для наилучшего выполнения действий, связанных с редукцией данных, в MPI предусмотрена функция:

int MPI_Reduce(void *sendbuf, void *recvbuf,int count,MPI_Datatype type, MPI_Op op,int root,MPI_Comm comm),

где

- sendbuf- буфер памяти с отправляемым сообщением,

- recvbuf– буфер памяти для результирующего сообщения (только для сса с рангом root),

проце- count- количество элементов в сообщениях,

- type– тип элементов сообщений,

- op- операция, которая должна быть выполнена над данными,

- root- ранг процесса, на котором должен быть получен результат,

- comm- коммуникатор, в рамках которого выполняется операция.

 

В качестве операций редукции данных могут быть использованы предопределенные в MPI операции – см. табл. 3.4.5.1.1.

Таблица 3.4.5.1.1. Базовые (пpедопpеделенные) типы операций MPI для функций редукции данных

 

MPI_MAX максимум

MPI_MIN минимум

MPI_SUM сумма

MPI_PROD произведение

MPI_LAND логическое И

MPI_BAND поразрядное И

MPI_LOR логическое ИЛИ

MPI_BOR поразрядное ИЛИ

MPI_LXOR логическое ИЛИ-НЕ

MPI_BXOR поразрядное ИЛИ-НЕ

MPI_MAXLOC значение максимума и локализация

MPI_MINLOC значение минимума и локализация

 








Дата добавления: 2015-02-03; просмотров: 955;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.