Page 158 - 4868
P. 158

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

               процесорами).
                     Проте, для викладу і подальшого аналізу ряду паралельних алгоритмів
               доцільне логічне представлення наявної комунікаційної мережі у вигляді тих
               або інших топологий.
                     У MPI є можливість представлення множини процесів у вигляді решітки
               довільної  розмірності.  При  цьому  граничні  процеси  решіток  можуть  бути
               оголошені сусідніми, і, тим самим, на основі решіток можуть бути визначені
               структури типу тор.
                     Приступаючи  до  вивчення  MPI,  можна  відмітити,  що,  з  одного  боку,
               MPI досить складний – в стандарті MPI передбачається наявність більш ніж
               120  функцій.  З  іншого  боку,  структура  MPI  є  ретельно  продуманою  –
               розробка  паралельних  програм  може  бути  розпочата  вже  після  розгляду
               усього  лише  6  функцій  MPI.  Усі  додаткові  можливості  MPI  можуть
               освоюватися  по  мірі  росту  складності  алгоритмів  і  програм,  що

               розробляються.

                     21.3. Основні етапи створення паралельної MPI-прогорами

                     Приведемо  мінімально  необхідний  набір  функцій  MPI,  достатній  для
               розробки порівняно простих паралельних програм.
                     Першою  функцією  MPI,  що  викликається  з  MPI-програми,  має  бути
               функція:
                     int MPI_Init(int *argc, char ***argv)

               де
                       argc – вказівник на кількість параметрів командного рядка;
                       argv  –  параметри  командного  рядка,  що  застосовуються  для
               ініціалізації середовища виконання MPI-программи.
                     Параметрами  функції  є  кількість  аргументів  в  командному  рядку  і
               адреса вказівника на масив символів тексту самого командного рядка.
                     Останньою функцією MPI, що викликається, обов’язково повинна бути
               функція:

                     int MPI_Finalize(void).

                     Як  результат,  можна  відмітити,  що  структура  паралельної  програми,
               розроблена з використанням MPI, повинна мати наступний вигляд:

                     #include "mpi.h"
                     int main(int argc, char *argv[]){
                       <програмний код без використання функцій MPI>
                       MPI_Init(&argc, &argv);
                       <програмний код з використанням функцій MPI>
                       MPI_Finalize();
                       <програмний код без використання функцій MPI>
                       return 0;
                     }
                     Слід зазначити, що:
   153   154   155   156   157   158   159   160   161   162   163