Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка для MPI.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
506.88 Кб
Скачать

Приложение а

Основные понятия

Наиболее распространенной технологией программирования для параллельных компьютеров с распределенной памятью в настоящее время является MPI. Основным способом взаимодействия параллельных процессов в таких системах является передача сообщений друг другу. Это и отражено в названии данной технологии – Message Passing Interface (интерфейс передачи сообщений). Стандарт MPI фиксирует интерфейс, который должен соблюдаться как системой программирование на каждой вычислительной платформе, так и пользователем при создании своих программ. Самый распространенной версией является MPI 1.1 разработанной в 1998 г.

MPI поддерживает работу с языками Фортран и Си. Полная версия интерфейса содержит более 125 процедур и функций.

Интерфейс поддерживает создание параллельных программ в стиле MIMD (Multiple Instruction Multiple Data), и SPMD-модель (Single Program Multiple Data).

MPI-программа – это множество параллельных взаимодействующих процессов. Все процессы порождаются один раз на все время выполнения программы. Процессы не имеют общих переменных или данных и работают в своих собственных адресных пространствах. Основным способом взаимодействия между процессами является явная посылка сообщений.

Коммуникатор – это группа процессов объединенных в одну среду общения. Их состав произволен и они могут пересекаться. Процессы могут взаимодействовать только внутри одного коммуникатора, тем самым сообщения, отправленные в разных коммуникаторах не пересекаются и не мешают друг другу. Все процессы имеют доступ к предопределенному коммуникатору MPI_COMM_WORLD, который существует во все время выполнения работ, для взаимодействия всех запущенных процессов MPI-программы.

Номер процесса – целое неотрицательное число – уникальный идентификатор процесса в коммуникаторе. Данный номер является адресом процесса, с помощью которого ему можно посылать сообщения. У процесса может быть несколько номеров в разных коммуникаторах. Если коммуникатор содержит n процессов то номер любого процесса лежит в пределах от 0 до n-1.

Тем самым коммуникатор и номер коммуникатора являются двумя основными атрибутами процесса.

Основным способом общения процессов между собой является явная посылка сообщений. Сообщение – набор данных некоторого типа, которые имеют несколько атрибутов, включая номер процесса отправителя, получателя, идентификатор сообщения и др.

Идентификатор (тег) – по нему процесс принимающий сообщения может различить два сообщения пришедшие с одного и того же процесса. Представляет собой неотрицательное число.

В последнем аргументе сообщения большинство процедур MPI возвращает информацию об успешности завершения. В случае успешного выполнения возвращается MPI_SUCCESS, иначе код ошибки.

Приложение в Краткий справочник функций mpi

Процедуры инициализации

Функция

Описание

Аргументы

MPI_Init(*argc,*argv)

Процедура инициализации MPI интерфейса. Должна вызываться до первой любой MPI фунции

Аргументы, переданные программе при запуске

MPI_Comm_size(comm,*size)

Получает число процессов в коммуникаторе

Номер коммуникатора, переменная для хранения результата

MPI_Comm_rank(comm,*rank)

Получет номер процесса

Номер коммуникатора, переменная для хранения результата

MPI_Abort(comm,errorcode)

Аварийный выход из MPI программы

Номер коммуникатора, номер ошибки при выходе

MPI_Get_processor_name(*name,*resultlength)

Получить имя хоста

Буфер для хранения строки с именем, число символов в буфере

MPI_Initialized (*flag)

Индикация прохождения инициализации MPI интерфейса

Флаг состояния (1-успешно, 0 –ошибка)

MPI_Wtime ()

Получить время в секундах, прошедшее с начала суток

MPI_Finalize ()

Остановка MPI интерфейса и отчистка памяти программы. Должна вызыватся в любой MPI программе. После неё вызывать MPI функции нельзя (включая MPI_Init())