Page 159 - 4868
P. 159

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

                       файл  mpi.h  містить  визначення  іменованих  констант,  прототипів
               функцій і типів даних бібліотеки MPI ;
                       функції  MPI_Init  і  MPI_Finalize  є  обов’язковими  і  мають  бути
               виконані (і тільки один раз) кожним процесом паралельної програми;

                       перед  викликом  MPI_Init  може  бути  використана  функція
               MPI_Initialized  для  перевірки  того,  чи  був  раніше  виконаний  виклик
               MPI_Init,  а  після  виклику  MPI_Finalize  –  функціяMPI_Finalized
               аналогічного призначення.
                     Розглянуті  приклади  функцій  дають  представлення  синтаксису
               іменування  функцій  в  MPI.  Імені  функції  передує  префікс  MPI,  далі  слідує
               один або декілька слів назви, перше слово в імені функції розпочинається із
               заголовного  символу,  слова  розділяються  знаком  підкреслення.  Назви
               функцій  MPI,  як  правило,  пояснюють  призначення  виконуваних  функцією
               дій.
                     Визначення  кількості  процесів  у  виконуваній  паралельній  програмі
               здійснюється за допомогою функції:
                     int MPI_Comm_size(MPI_Comm comm, int *size)

               де
                       comm – комунікатор, розмір якого визначається;

                       size –кількість процесів в комунікаторові.
                     Для визначення рангу процесу використовується функція:
                     int MPI_Comm_rank(MPI_Comm comm, int *rank)

               де
                       comm – комунікатор, в якому визначається ранг процесу;
                       rank – ранг процесу в комунікаторові.
                     Як        правило,          виклик         функцій          MPI_Comm_size              і
               MPI_Comm_rankвиконується  відразу  після  MPI_Init  для  отримання
               загальної кількості процесів і рангу поточного процесу:

                     #include "mpi.h"
                     int main(int argc, char *argv[]){
                       int ProcNum, ProcRank;
                       <програмний код без використання функцій MPI>
                       MPI_Init(&argc, &argv);
                       MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);
                       MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
                       <програмний код з використанням функцій MPI>
                       MPI_Finalize();
                       <програмний код без використання функцій MPI>
                       return 0;
                     }

                     Слід зазначити, що:
                       комунікатор  MPI_COMM_WORLD,  як  відзначалося  раніше,  створюється
                 за  замовчуванням  і  представляє  усі  процеси  виконуваної  паралельної
   154   155   156   157   158   159   160   161   162   163   164