- •Государственное образовательное учреждение
- •1 Параллельная обработка данных в вычислительных системах кластерного типа
- •1.1 Параллельная обработка данных
- •1.1.1 Основные определения
- •1.1.2 Два основных подхода к достижению параллельности
- •1.2 Модели и схемы параллелизма
- •1.2.1 Простейшая модель параллельного программирования (pram)
- •1.2.2 Простейшая классификация схем параллелизма
- •1.3 Существующие параллельные вычислительные средства класса mimd
- •1.4 Архитектура кластерных систем
- •1.5 Сетевое оборудование
- •1.5.1 Коммуникационная технология sci
- •1.5.2 Коммуникационная технология Myrinet
- •1.6 Системы программирования для кластеров
- •1.6.1 СтандартOpenMp
- •1.6.2 Стандарт mpi
- •1.6.3 Реализации mpi
- •1.7 Выводы по главе 1
- •2 Эффективность кластера и алгоритмы, используемые в параллельных и распределенных приложениях
- •2.1 Эффективность
- •2.2 Структура программы с двухточечным обменом данными между процессами
- •2.3 Алгоритмы
- •2.3.1 Вычисление частных сумм последовательности числовых значений
- •2.3.2 Умножение матрицы на вектор
- •2.3.3 Матричное умножение
- •2.3.4 Сортировка
- •2.3.5 Интегрирование
- •2.4 Выводы по главе 2
- •3 Практическая реализация системы кластерного типа
- •3.1 Создание кластера
- •3.2 Тестирование кластерной системы
- •3.3Выводы по главе 3
- •4 Руководство по эксплуатации кластерной системы
- •4.1 Руководство программиста
- •4.1.1 Среда разработки
- •4.1.2 Программный пакет wmpi 1.3
- •4.1.3 Состав пакетаWmpi1.3
- •4.1.4 Основные функцииMpi
- •4.2 Руководство пользователя
- •4.2.1 Построение программы
- •4.2.2 Запуск
- •4.3 Выводы по главе 4
- •Заключение
- •Список использованных источников
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]