Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KS_LK_AllInOne.docx
Скачиваний:
175
Добавлен:
23.11.2019
Размер:
28.78 Mб
Скачать

2. Кластерн ый вычислительн ый комплекс на основе интерфейса передачи сообщений

2.1 MPI – «Интерфейс передачи сообщений»

Практическое воплощение модель передачи сообщений нашла в специфи­кации, которая получила название «Интерфейс передачи сообщений» – MPI (Message Passing Interface). Эта спецификация была разработана в 1993–1994 годах группой MPI Forum, в состав которой входили представители академических и промыш­ленных кругов. Она стала первым стандартом систем передачи сообщений. В MPI были учтены достижения других проектов по созданию систем пере­дачи сообщений: NX/2, Express, nCUBE, Vertex, p4, PARMACS, PVM, Cha­meleon, Zipcode, Chimp и др. Ее реализации представляют собой библиоте­ки подпрограмм, которые могут использоваться в программах на языках C/C++ и FORTRAN. В настоящее время принята новая версия спецификации – MPI-2.

В модели программирования, которую поддерживает MPI, программа поро­ждает несколько процессов, взаимодействующих между собой с помощью обращений к подпрограммам передачи и приема сообщений. Обычно, при инициализации MPI-программы создается фиксированный набор процес­сов, причем каждый процесс выполняется на своем процессоре. В этих процессах могут выполняться разные программы, поэтому модель програм­мирования MPI иногда называют MPMD-моделью (Multiple Program Multiple Data – множество программ множество данных), в отличие от SPMD-модели, где на каждом процессоре выполняются только одинаковые задачи.

Спецификация MPI обеспечивает переносимость программ на уровне ис­ходных кодов и большую функциональность. Поддерживается работа на ге­терогенных кластерах и симметричных многопроцессорных системах. Не поддерживается запуск процессов во время выполне­ния MPI-программы. В спецификации отсутствуют описания параллельного ввода/вывода и отладки параллельных программ. Эти возможности могут быть включены в состав конкретной реализации MPI в виде дополнитель­ных пакетов и утилит. Совместимость разных реализаций MPI не гаранти­руется.

2.2 Программная реализация интерфейса передачи сообщений

MPICH (MPI CHameleon) представляет собой одну из реализаций специ­фикации MPI, которая поддерживает работу на большом числе платформ и с различными коммуникационными интерфейсами, в том числе TCP/IP.

Основные особенности MPICH версии 1.2.2:

  • полная совместимость со спецификацией MPI-1;

  • наличие интерфейса в стиле MPI-2 с функциями для языка C++ из спе­цификации MPI-1;

  • наличие интерфейса с процедурами языка FORTRAN-77/90;

  • имеется реализация для Windows NT, которая распространяется в исход­ных текстах;

  • поддержка большого числа архитектур, в том числе кластеров рабочих станций, симметричных многопроцессорных систем и др.;

  • частичная поддержка спецификации MPI-2;

  • частичная поддержка параллельных ввода/вывода (ROMIO);

  • наличие средств трассировки и протоколирования;

  • наличие средств визуализации производительности параллельных про­грамм (upshot и jumpshot);

  • наличие в составе MPICH тестов производительности и проверки функ­ционирования системы.

В дальнейшем будем пользоваться реализацией MPICH для наиболее распространенной операционной системы Linux. Популярность данной вер­сии отчасти связана с тем, что она является некоммерческой и распростра­няется бесплатно.

Имеются и коммерческие варианты MPICH, которые выпускаются с оптимизацией для конкретной платформы и могут содержать дополнительные функции и утилиты. Есть варианты для других операцион­ных систем. В качестве примера можно привести WMPI – реализацию MPICH для Microsoft Windows.

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

Если MPICH при установке был сконфигурирован для работы на клас­те­ре, то даже при пересылках сообщений на одном компьютере будет использо­ваться утилита rsh и сетевой протокол TCP/IP. Это не самое эффективное решение. Если же сборка производилась для системы с разделяемой па­мятью, MPICH-программа не сможет работать на кластере. В состав MPICH входят библиотечные и заголовочные файлы. MPICH со­держит более сотни подпрограмм. С пакетом MPICH поставляются средства визуальной отладки и профилирования параллельных программ. Это jump-shot или более старая вер­сия upshot. Написаны они на языке Java и работают с файлами-протокола­ми событий (tracefiles) CLOG (jumpshot 2) и SLOG (jumpshot 3). Имеется документация к MPICH в форматах HTML и PostScript.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]