Page 169 - 4868
P. 169
167 Ошибка! Стиль не определен.
процесу. У цій операції над збираними значеннями здійснюється та або інша
обробка даних (для підкреслення останнього моменту ця операція ще
іменується операцією редукції даних ). Як і раніше, реалізація операції
редукції за допомогою звичайних парних операцій передачі даних є
неефективною і досить трудомісткою. Для найкращого виконання дій,
пов’язаних з редукцією даних, в 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 операції
з таблиці 2.3.
Таблиця 2.3 – Базові типи операцій 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.
Елементи отримуваного повідомлення на процесі root є результатами
обробки відповідних елементів передаваних процесами повідомлень, тобто: