Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






MPI_Op op, int root, MPI_Comm comm)





где

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

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

count – количество элементов в сообщениях;

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

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

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

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

В качестве параметра op могут быть использованы предопределенные в 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 – определение минимальных значений и их индексов.

Помимо данного стандартного набора операций пользователем могут быть определены и новые дополнительные операции (см. документацию по библиотеке MPI).

Общая схема выполнения операции сбора и обработки данных изображена на следующем рисунке.

 

 
 

 


Также следует отметить следующее:

1. Функция MPI_Reduce определяет коллективную операцию и, тем самым, вызов функции должен быть выполнен всеми процессами указываемого коммуникатора, все вызовы функции должны содержать одинаковые значения параметров count, type, op, root, comm.

2. Передача сообщений должна быть выполнена всеми процессами, результат операции будет получен только процессом с рангом root.

3. Выполнение операции редукции осуществляется над отдельными элементами передаваемых сообщений. Так, например, если сообщения содержат по два элемента данных и выполняется операция суммирования MPI_SUM, то результат также будет состоять из двух значений, первое из которых будет содержать сумму первых элементов всех отправленных сообщений, а второе значение будет равно сумме вторых элементов сообщений соответственно (см. рисунок).

 
 

 

 


Наряду с функцией MPI_Reduce, в библиотеке MPI есть функция MPI_Allreduce, которая выполняет редукцию данных, после чего рассылает результаты редукции всем процессам. Студентам предлагается самостоятельно исследовать возможности данной функции.

 

Date: 2016-02-19; view: 307; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию