Page 218 - 6571
P. 218
Функція MPI_Barrier визначає колективну операцію, і, тим
самим, при використанні вона повинна викликатися усіма проце-
сами використовуваного комунікатора. При виклику функції
MPI_Barrier виконання процесу блокується, продовження об-
числень процесу станеться тільки після виклику функції MP-
I_Barrier усіма процесами комунікатора.
Для коректного завершення паралельної програми у разі не-
передбачених ситуацій необхідно використати функцію:
int MPI_Abort(MPI_Comm comm, int errorcode)
де comm – комунікатор, процеси якого необхідно аварійно зупи-
нити;
errorcode – код повернення з паралельної програми.
Ця функція коректно перериває виконання паралельної про-
грами, оповіщаючи про цю подію середовище MPI, на відміну від
функцій стандартної бібліотеки алгоритмічної мови C, таких, як
abort або terminate. Типове її використання полягає в наступ-
ному:
MPI_Abort(MPI_COMM_WORLD, MPI_ERR_OTHER);
Запитання для самоперевірки
1. Чому в MPI-програмі не рекомендується використовувати
стандартні засоби виміру часу виконання процесу?
2. Яка MPI-функція використовується для отримання поточ-
ного моменту часу?
3. Яке призначення функції MPI_Wtick визначеної у MPI?
4. Яким чином відбувається передача даних від одного про-
цесу усім іншим процесам MPI-програми?
5. Яке призначення функції MPI_Bcast визначеної у MPI?
6. Яким чином відбувається передача даних від усіх процесів
одному процесу MPI-програми?
7. Яке призначення функції MPI_Reduce визначеної у MPI?
8. Які Ви знаєте базові типи операцій MPI для функцій реду-
кції даних?
9. Яким чином досягається синхронізація процесів у MPI-
програмі?
217