Параллельная обработка данных



Технологии параллельного программирования


2004 г

Курс лекций "Параллельная обработка данных"

, д.ф.-м.н., зам. директора НИВЦ МГУ
Сайт PARALLEL.RU

Лекция 5. Технологии параллельного программирования. Message Passing Interface (MPI)

План лекции:

  • MPI. Терминология и обозначения

    MPI - message passing interface - библиотека функций, предназначенная для поддержки работы параллельных процессов в терминах передачи сообщений.

    Номер процесса - целое неотрицательное число, являющееся уникальным атрибутом каждого процесса.

    Атрибуты сообщения - номер процесса-отправителя, номер процесса-получателя и идентификатор сообщения. Для них заведена структура MPI_Status, содержащая три поля: MPI_Source (номер процесса отправителя), MPI_Tag (идентификатор сообщения), MPI_Error (код ошибки); могут быть и добавочные поля.

    Идентификатор сообщения (msgtag) - атрибут сообщения, являющийся целым неотрицательным числом, лежащим в диапазоне от 0 до 32767.

    Процессы объединяются в группы, могут быть вложенные группы. Внутри группы все процессы перенумерованы. С каждой группой ассоциирован свой коммуникатор. Поэтому при осуществлении пересылки необходимо указать идентификатор группы, внутри которой производится эта пересылка. Все процессы содержатся в группе с предопределенным идентификатором MPI_COMM_WORLD.

    При описании процедур MPI будем пользоваться словом OUT для обозначения "выходных" параметров, т.е. таких параметров, через которые процедура возвращает результаты.

    Общие процедуры MPI

    int MPI_Init( int* argc, char*** argv)

    MPI_Init - инициализация параллельной части приложения. Реальная инициализация для каждого приложения выполняется не более одного раза, а если MPI уже был инициализирован, то никакие действия не выполняются и происходит немедленный возврат из подпрограммы. Все оставшиеся MPI-процедуры могут быть вызваны только после вызова MPI_Init.

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

    int MPI_Finalize( void )

    MPI_Finalize - завершение параллельной части приложения.


    Содержание  Назад  Вперед