Page 212 - 6571
P. 212
(латентностей) на підготовку повідомлень, що передаються. Така
операція може бути виконана за log p ітерацій передачі даних.
2
Досягнення ефективного виконання операції передачі даних
від одного процесу усім процесам програми (широкомовна розси-
лка даних ) може бути забезпечена за допомогою наступної фун-
кції MPI:
int MPI_Bcast(void *buf, int count, MPI_Datatype type,
int root, MPI_Comm comm)
де buf, count, type – буфер пам’яті з повідомленням (для про-
цесу з рангом 0), що відправляється, і для прийому повідомлень
(для усіх інших процесів );
root – ранг процесу, що виконує розсилку даних;
comm – комунікатор, у рамках якого виконується передача
даних.
Функція MPI_Bcast здійснює розсилку даних з буфера buf,
що містить count елементів типу type, з процесу, що має номер
root, усім процесам, що входять до комунікатора comm (рис. 22.1).
Слід зазначити, що:
- функція MPI_Bcast визначає колективну операцію, і, тим
самим, при виконанні необхідних розсилок даних виклик функції
MPI_Bcast має бути здійснений усіма процесами вказуваного
комунікатора;
Рисунок 22.1 – Загальна схема операції передачі даних від одного
процесу усім іншим процесам
- вказуваний у функції MPI_Bcast буфер пам’яті має різне
призначення у різних процесів: для процесу з рангом root, яким
здійснюється розсилка даних, в цьому буфері повинне знаходи-
211