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;
}
Слід зазначити, що: