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

5.1. Mpi: основные понятия и определения

5.1.1. Понятие параллельной программы

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

Каждый процесспараллельной программыпорождается на основе копии одного и того же программного кода (модель SPMP). Данный программный код, представленный в виде исполняемой программы, должен быть доступен в момент запускапараллельной программына всех используемых процессорах. Исходный программный код для исполняемой программы разрабатывается на алгоритмических языках C или Fortran с применением той или иной реализации библиотекиMPI.

Количество процессови число используемых процессоров определяется в момент запускапараллельной программысредствами среды исполненияMPI-программ и в ходе вычислений не может меняться без применения специальных, но редко задействуемых средств динамического порожденияпроцессови управления ими, появившихся в стандартеMPIверсии 2.0. Всепроцессыпрограммы последовательно перенумерованы от0доp-1, гдеpесть общее количествопроцессов. Номерпроцессаименуется рангомпроцесса.

5.1.2. Операции передачи данных

Основу MPIсоставляют операции передачи сообщений. Среди предусмотренных в составеMPIфункций различаютсяпарные(point-to-point) операции между двумяпроцессамииколлективные(collective) коммуникационные действия для одновременного взаимодействия несколькихпроцессов.

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

Как уже отмечалось ранее, в стандарт MPIвключено большинство основных коллективных операций передачи данных – см. подразделы 5.2 и 5.4.

5.1.3. Понятие коммуникаторов

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

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

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

В версии 2.0 стандарта появилась возможность создавать глобальные коммуникаторы (intercommunicator), объединяющие в одну структуру пару групп при необходимости выполнения коллективных операций междупроцессамииз разных групп.

Подробное рассмотрение возможностей MPIдля работы с группами и коммуникаторами будет выполнено в подразделе 5.6.