Модель системы с передачей сообщений. MPI-библиотеки

Страницы работы

Содержание работы

Message-Passing Interface

Модель системы с передачей сообщений

Модель системы с передачей сообщений - одна из вычислительных моделей, позволяющих внести структурированный подход в разработку параллельных алгоритмов и программ. Она определяется следующими требованиями:

- все процессы имеют только локальную память;

- процессы взаимодействуют посредством посылки и приема сообщений;

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

Существуют другие модели параллельных вычислений:

- параллелизм данных (разбиение данных позволяет обрабатывать части параллельно);

- разделяемая память (несколько процессов обращаются к общей памяти);

- удаленная операция с памятью (процесс имеет доступ к локальной памяти другого процесса без участия в операции второго процесса);

- потоки (процесс допускает одновременное выполнение несколькими способами);

- комбинированные модели (состоящие из двух и более названных выше).

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

Модель системы с передачей сообщений является одной из самых распространенных в области параллельного программирования во многом благодаря своим преимуществам по сравнению с остальными моделями:

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

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

- Эффективное использование современных процессоров требует создания управления иерархией памяти (особенно кэш). MPI помогает управлению памятью, требуя от программиста локализации всех данных и повышенного контроля за потоками информации в системе.

Наиболее важным недостатком модели принято считать ту большую ответственность, которую она возлагает на программиста. Программист сам определяет распределение данных, межпроцессорные взаимодействия и синхронизацию. Таким образом, лишь программист должен обеспечить решение таких проблем параллельного программирования, как зависимость по данным, тупик, разбалансированность алгоритма.

MPI-библиотеки

Множество операций взаимодействия, выполняемых в рамках модели системы с передачей сообщений, являются компонентами MPI-библиотек. Существует большое количество как переносимых MPI-библиотек, так и MPI-библиотек, являющихся машинно-независимыми. Такие пакеты обычно включают в себя следующий ряд процедур:

- процедуры управления процессом (порождение и удаление процесса, определение числа процессов в системе и идентификатора процесса);

- процедуры point-to-point взаимодействия между двумя процессами (обычно операции send/recv);

- процедуры группового обмена информацией между процессами (broadcast, gather, scatter, множественные арифметические операции, синхронизация процессов);

Терминология, используемая большинством MPI-библиотек

Буферизация - выполнение системой временного копирования сообщения при работе протокола обмена сообщениями.

Коммуникация с блокировкой - процедуры обмена сообщениями называют коммуникациями с блокировкой в том случае, если завершение вызова функции обмена сообщением зависят от определенных событий. Для функции send данные должны быть успешно посланы и скопированы так, чтобы буфер, содержащий эти данные, был доступен для использования. Для функции recv данные должны быть успешно сохранены в буфере функции так, чтобы они были доступны для использования.

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

Синхронные коммуникации - коммуникации, в которых вызов send в процессе-источнике не завершает свою работу до тех пор, пока в процессе-приемнике не будет вызван соответствующий ему вызов recv.

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

Point-to-point взаимодействия

Информация о работе