Средства программирования для многопроцессорных вычислительных систем. Немнюгин C.А. - 32 стр.

UptoLike

Составители: 

32
Далее
приводится
описание
свободно
распространяемой
версии
MPI – MPICH 1.2.7,
соответствующей
спецификации
MPI 1.
Модель параллельной программы в MPI
В
модели
программирования
MPI
параллельная
программа
при
запуске
порождает
несколько
процессов
,
взаимодействующих
между
собой
с
помощью
сообщений
.
Совокупность
всех
процессов
,
составляющих
параллельное
приложение
,
или
их
части
,
описывается
специальной
структурой
,
которая
называется
коммуникатором
(
областью
взаимодействия
).
Каждому
процессу
в
области
взаимодействия
назначается
уникальный
числовой
идентификатор
ранг
,
значение
которого
от
0
до
np – 1 (np
число
процессов
).
Ранги
,
назначаемые
одному
и
тому
же
процессу
в
разных
коммуникаторах
,
вообще
говоря
,
различны
.
Структура
программы
,
написанной
по
схеме
хозяин
/
работник
,
приведена
ниже
.
program para
if (ранг процесса = рангу мастер-процесса) then
код мастер-процесса
else
код подчиненного процесса (подчиненных процессов)
endif
end
Каждый
экземпляр
программы
уже
в
процессе
своего
выполнения
определяет
,
является
ли
он
мастер
-
процессом
.
Затем
,
в
зависимости
от
результата
этой
проверки
,
выполняется
одна
из
ветвей
условного
оператора
.
Первая
ветвь
соответствует
мастер
-
задаче
,
а
вторая
подчиненной
задаче
.
Способы
взаимодействия
между
подзадачами
определяются
программистом
.
Перед
использованием
процедур
передачи
сообщений
программа
должна
подключиться
к
системе
обмена
сообщениями
.
Подключение
выполняется
с
помощью
соответствующего
вызова
процедуры
из
библиотеки
.
В
одних
реализациях
модели
допускается
только
одно
подключение
,
а
в
других
несколько
подключений
к
системе
.
Сообщения
Сообщение
содержит
пересылаемые
данные
и
служебную
информацию
.
Для
того
,
чтобы
передать
сообщение
,
необходимо
указать
:
ранг
процесса
-
отправителя
сообщения
;
адрес
,
по
которому
размещаются
пересылаемые
данные
процесса
-
отправителя
;
тип
пересылаемых
данных
;
количество
данных
;
ранг
процесса
,
который
должен
получить
сообщение
;
адрес
,
по
которому
должны
быть
размещены
данные
процессом
-
получателем
.
тег
сообщения
;
идентификатор
коммуникатора
,
описывающего
область
взаимодействия
,
внутри
которой
происходит
обмен
.
Тег
это
задаваемое
пользователем
целое
число
от
0
до
32767,
которое
играет
роль
идентификатора
сообщения
и
позволяет
различать
сообщения
,
приходящие
от
одного