Page 171 - 4868
P. 171

169                                                              Ошибка! Стиль не определен.

               інших точок процесу обчислень, забезпечується за допомогою функції MPI:

                     int MPI_Barrier(MPI_Comm comm)

               де
                       comm – комунікатор, у рамках якого виконується операція.
                     Функція MPI_Barrier визначає колективну операцію, і, тим самим, при
               використанні вона повинна викликатися усіма процесами використовуваного
               комунікатора.  При  виклику  функції  MPI_Barrier  виконання  процесу
               блокується, продовження обчислень процесу станеться тільки після виклику
               функції MPI_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-програмі?



                             ЛЕКЦІЯ 23. ПОХІДНІ ТИПИ ДАНИХ В МОВІ MPI


                     23.1. Поняття похідного типу даних

                     У  всіх  раніше  розглянутих  прикладах  при  використанні  функцій
               передачі  даних  передбачалося,  що  повідомлення  є  деяким  безперервним
               вектором елементів передбаченого в MPI типу (список наявних в MPI типів
   166   167   168   169   170   171   172   173   174   175   176