Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

1.6.2 Стандарт mpi

“Message Passing Interface (MPI) - взаимодействие через передачу сообщений. Этот стандарт оказался наиболее распространенным при написании вычислительных и иных параллельных приложений для массивно-параллельных суперкомпьютеров и кластеров. Кроме упоминавшихся свободных пакетов MPICH и LAM существуют и другие реализации. Коммерческие чаще всего делаются для Windows NT, а реализации от производителей (Hewlett-Packard, Sun, Cray, Silicon Graphics,) ориентированы на приложения для своих MPI-суперкомпьютеров. Все эти пакеты содержат одинаковый базовый набор MPI-функций, поэтому приложение, отлаженное с использованием одного из них, должно компилироваться с применением других.

К достоинствам пакета MPICH можно отнести почти абсолютную кроссплатформность. Так, в руководстве по установке перечисляется двенадцать различных программно-аппаратных платформ и вдвое больше вариантов, на которых может быть установлен MPICH. Кроме того, MPICH распространяется в исходных кодах и собирается на месте, с учетом особенностей конкретной платформы и среды коммуникации. После установки пакет работает со своими библиотеками, вызывая имеющиеся в системе компиляторы C/C++ и Fortran 77/90.

Независимо от реализации стандарт MPI предлагает следующую модель программирования: параллельное приложение состоит из нескольких одновременно выполняемых процессов, которые обмениваются между собой данными с помощью сообщений. Механизм сообщений реализуется посредством функций MPI, скрыт от пользователя и совершенно не зависит от физической привязки процессов, которые могут выполняться на процессорах разных узлов, на разных процессорах одного узла и даже на одном и том же процессоре, благодаря чему параллельные программы можно отлаживать на обычном ПК. Таким образом, появляется возможность создавать хорошо масштабируемые приложения, которые с разной эффективностью выполняются на многих системах.” [2]

“Для MPI принято писать программу, содержащую код всех ветвей сразу. MPI-загрузчиком запускается указываемое количество экземпляров программы. Каждый экземпляр определяет свой порядковый номер в запущенном коллективе, и в зависимости от этого номера и размера коллектива выполняет ту или иную ветку алгоритма. Такая модель параллелизма называется Single program/Multiple data ( SPMD ), и является частным случаем модели Multiple instruction/Multiple data ( MIMD ). Каждая ветвь имеет пространство данных, полностью изолированное от других ветвей. Обмениваются данными ветви только в виде сообщений MPI.

Все ветви запускаются загрузчиком одновременно как процессы Юникса. Количество ветвей фиксировано - в ходе работы порождение новых ветвей невозможно. Если MPI-приложение запускается в сети, запускаемый файл приложения должен быть построен на каждой машине.”[5]

1.6.3 Реализации mpi

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

Реализации MPI разрабатываются как для операционных систем Unix (преимущественно для Linux), так и для Windows. Наибольшее распространение получили бесплатные реализации. Ниже перечислены некоторые из них:

MPICH – переносимая реализация (работает почти на всех UNIX-системах и Windows NT), разработана в Аргоннской национальной лаборатории. Поддерживаются кластеры на базе SMP-узлов;

LAM – реализация MPI для гетерогенных кластеров, т. е. кластеров, состоящих из процессоров с разной архитектурой и параметрами (университет Notre-Damme);

WMPI – реализация MPI для платформ Win32 (Microsoft Windows 95/98/NT), разработанная в университете Coimbra (Португалия). Имеет малый объем и упрощенную инсталляцию;

MP-MPICH – мультиплатформенная реализация MPI на базе MPICH. Включает NT-MPICH (версию MPICH для Windows NT) и SCI-MPICH (версию MPICH для SCI-коммутаторов). Разработка RWTH-Aachen (Аахен, Германия).

Некоторые коммерческие реализации предназначены для работы с ОС Windows: MPI/PRO for Windows NT – разработана компанией MPI Software Technology. Работает на кластерах рабочих станций и серверов Windows NT (платформы Intel и Alpha). Поддерживается стандарт MPI 1.2;

PaTENT MPI – реализация MPI компании Genias Sotfware для кластеров на базе Windows NT;

PowerMPI – реализация MPI для транспьютерных систем Parsytec.

Производители параллельных систем почти всегда поставляют оптимизированные для своих систем реализации интерфейса MPI, например для машин HP 9000, SGI/Cray, IBM SP2, Sun HPC и др.[16]