Информатика и вычислительная техника





Скачать 376.62 Kb.
НазваниеИнформатика и вычислительная техника
страница8/8
Дата публикации03.04.2015
Размер376.62 Kb.
ТипДокументы
100-bal.ru > Информатика > Документы
1   2   3   4   5   6   7   8

Интерфейс MPI, как основная среда межпроцессорной передачи данных


Взаимодействие между узлами вычислительного кластера происходит на уровне обмена сообщениями. Для этого используется интерфейс MPI. Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Основные разработчики Уильямом Гроуппом, Эвином.

MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается MPI Forum. В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI. Существуют реализации для языков Фортран 77/90, Си и Си++.

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

Интерфейс MPI стал фактически стандартом в сфере взаимодействия между узлами кластера. Для различных платформ существуют различные варианты реализации интерфейса MPI:

  • MPI.NET — реализация MPI для Windows.

  • MPICH — самая распространённая бесплатная реализация, работает на UNIX-системах и Windows NT.

  • MPI/PRO for Windows NT — коммерческая реализация для Windows NT.

  • Intel MPI — коммерческая реализация для Windows / Linux.

  • Microsoft MPI входит в состав Compute Cluster Pack SDK. Основан на MPICH2, но включает дополнительные средства управления заданиями. Поддерживается спецификация MPI-2.

  • HP-MPI — коммерческая реализация от HP.

  • SGI MPT — платная библиотека MPI от SGI.

  • Mvapich — бесплатная реализация MPI для Infiniband.

  • Open MPI — бесплатная реализация MPI, наследник LAM/MPI.

  • Oracle HPC ClusterTools — бесплатная реализация для Solaris SPARC/x86 и Linux на основе Open MPI.

  • MPJ — MPI for Java.

Если учитывать то, что операционные системы семейства Linux являются наиболее распространенными на вычислительных кластерах, то наиболее распространёнными и развиваемыми являются реализации MPI именно для этих платформ. Однако не стоит забывать, что и компания Microsoft стремительно развивает свои технологии в области высокопроизводительных вычислений. Рассмотрим наиболее популярные из реализаций MPI.
      1. MPICH


Message Passing Interface Chameleon — это одна из самых первых разработанных библиотек MPI. На её базе было создано большое количество других библиотек как бесплатных, так и коммерческих. В настоящее время существует две ветви исходных кодов: MPICH1 и MPICH2. Разработка ветви MPICH1 заморожена. Ветвь MPICH2 активно разрабатывается в Арагонской лаборатории, с участием IBM, Cray, SiCortex, Microsoft, Intel, NetEffect, Qlogic, Myricom, Ohio state university, UBC.

Рассмотрим схему работы программы с использованием директив MPICH. Менеджер процессов smpd, который представляет собой системную службу (сервисное приложение). Менеджер процессов ведёт список вычислительных узлов системы, и запускает на этих узлах MPI-программы, предоставляя им необходимую информацию для работы и обмена сообщениями. MPICH состоит из следующих компонентов:

  • Заголовочные файлы (.h) и библиотеки стадии компиляции (.lib), необходимые для разработки MPI-программ.

  • Библиотеки времени выполнения, необходимые для работы MPI-программ.

  • Дополнительные утилиты, необходимые для настройки MPICH и запуска MPI-программ.

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

Менеджер работает в фоновом режиме и ждёт запросов к нему из сети со стороны «головного» менеджера процессов (по умолчанию используется сетевой порт 8676). Чтобы как-то обезопасить себя от хакеров и вирусов, менеджер требует пароль при обращении к нему. Когда один менеджер процессов обращается к другому менеджеру процессов, он передаёт ему свой пароль. Отсюда следует, что нужно указывать один и тот же пароль при установке MPICH на компьютеры сети.



Рисунок - Схема работы MPICH на кластере

В современных кластерах сеть передачи данных обычно отделяется от управляющей сети

Запуск MPI-программы производится следующим образом:

  1. Пользователь с помощью программы Mpirun (или Mpiexec, при использовании MPICH2 под Windows) указывает имя исполняемого файла MPI-программы и требуемое число процессов. Кроме того, можно указать имя пользователя и пароль: процессы MPI-программы будут запускаться от имени этого пользователя.

  2. Mpirun передаёт сведения о запуске локальному менеджеру процессов, у которого имеется список доступных вычислительных узлов.

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

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

Очень важным моментом здесь является то, что перед запуском MPI-программа не копируется автоматически на вычислительные узлы кластера. Вместо этого менеджер процессов передаёт узлам путь к исполняемому файлу программы точно в том виде, в котором пользователь указал этот путь программе Mpirun. Это означает, что если вы, например, запускаете программу C:\programm.exe, то все менеджеры процессов на вычислительных узлах будут пытаться запустить файл C:\ programm.exe. Если хотя бы на одном из узлов такого файла не окажется, произойдёт ошиб­ка запуска MPI-программы.

Чтобы каждый раз не копировать вручную программу и все необходимые для её работы файлы на вычислительные узлы кластера, обычно используют общий сетевой ресурс. В этом случае пользователь копирует программу и дополнительные файлы на сетевой ресурс, видимый всеми узлами кластера, и указывает путь к файлу программы на этом ресурсе. Дополнительным удобством такого подхода является то, что при наличии возможности записи на общий сетевой ресурс запущенные копии программы могут записывать туда результаты своей работы.

Работа MPI-программы происходит следующим образом:

Программа запускается и инициализирует библиотеку времени выполнения MPICH путём вызова функции MPI_Init.

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

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

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

Перед завершением все процессы вызывают функцию MPI_Finalize, которая корректно завершает передачу и приём всех сообщений, и отключает MPICH.

Все описанные выше принципы действуют, даже если вы запускаете MPI-программу на одном компьютере.
      1. MPI.NET


Message Passing Interface for .NET – это высокопроизводительное и простое в реализации применение MPI. MPI.NET обеспечивает поддержку для всех языков .NET (в частности, C#) и включает в себя значительные расширения, такие как автоматическая сериализация объектов, что обеспечивает написание программ для кластеров. Особенностью разработки, используя MPI.NET является отсутствие необходимости изучать новые языки программирования т.к. поддерживаются все языки платформы .NET а также поддержка MPI.NET со стороны производителя операционной системы. Пакет MPI.NET может быть установлен на операционные системы Windows Compute Cluster Server, Windows HPC Server 2008, Windows XP, Windows Vista, Windows 7. Для тестирования и выполнения программ требуется установить пакет программ Windows HPC Server и MPI.NET SDK. Отладка приложений производится с помощью набора утилит, которые позволяют эмулировать кластер. В частности компиляция программ осуществляется с помощью утилиты mpiexec. Эта утилита входит в пакет MPI.NET SDK. В качестве аргументов утилита принимает число эмулируемых процессов, имена хостов, рабочую директорию и имя файла.
    1. Система мониторинга кластера


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

  • Уровень загрузки процессоров вычислительного кластера.

  • Уровень загрузки память на узлах.

  • Контроль трафика по сети Ethernet.

  • Контроль трафика по сети InfiniBand.

  • Уровень загрузки жестких дисков на вычислительных узлах.

  • Уровень загрузки кластера каждым из пользователей.

  • Доступность узлов вычислительного кластера.

  • Отчеты по температурным и другим показателям.

Наиболее известным и часто используемой системой мониторинга кластера для Linux является Gunglia. При мониторинге кластера под ОС Windows часть задач берет на себя система управления кластером и сама операционная система.

Необходимо иметь резервные каналы доступа к вычислительным узлам кластера. Для Linux кластеров основным протоколом доступа является ssh. В качестве резервных каналов связи можно использовать протокол VNC или программное обеспечение ServNet.
  1. СОВРЕМЕННЫЕ НАПРАВЛЕНИЕ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРОВ


Вычислительные кластеры претерпевают постоянные изменения в своей архитектуре, в специфики работы в программном обеспечении. Уже сегодня можно основными направлениями развития рынка HPC является повышение производительности и уменьшение затрат на эксплуатацию вычислительного кластера. Эти показатели могут быть достигнуты при использовании:

  • Высокоскоростной среды передачи данных. Как правило, в современных суперкомпьютерах используется сеть InfiniBand высокоскоростными коммутирующими устройствами. Это позволяет уменьшить латентность при проведении расчётов.

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

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

  • Бездисковых серверов. За счет этого можно увеличить полезную площадь материнской платы и использовать дополнительные вычислительные мощности.

  • Гибридных кластеров на GPU. Использование графических адаптеров для высоко сложных расчётах позволило увеличить производительность системы на один – два порядка. В сочетании с меньшей стоимостью графических карты и низким энергопотреблением, графические карты становятся необходимыми для внедрения на оборудовании HPC. Основным производителем является NVidia с линейкой продуктов Tesla.

ЗАКЛЮЧЕНИЕ


В работе были проанализированы методы построения и организации вычислительных кластеров. Приведены иллюстрации и описания для типов кластеров. Было приведено описание используемого программного обеспечения для их организации. Рассмотрены преимущества и недостатки используемого программного обеспечения. Рассмотрен весь цикл установки вычислительного кластера. Были предложены советы по повышению производительности и оптимизации работы вычислительного кластера.

Список использованной литературы


  1. http://www.supercomputers.ru [Электронный ресурс]. Режим доступа свободный.

  2. http://www.intuit.ru [Электронный ресурс]. Режим доступа свободный.

  3. Корняков. К.В. “Построение и использование кластерных вычислительных систем”. - Нижний Новгород, 2007, 98 с.

  4. “Руководство по работе на вычислительном кластере”. - Минск, БГУ 2004г. – 172с.

  5. http://www.infinibandta.org/ [Электронный ресурс]. Режим доступа свободный.

  6. http://www.adaptivecomputing.com/products/open-source/torque [Электронный ресурс]. Режим доступа свободный.
1   2   3   4   5   6   7   8

Похожие:

Информатика и вычислительная техника iconПрограмма разработана в соответствии с: Федеральному Государственному...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов для направления 230100. 68...
Информатика и вычислительная техника iconУчебной дисциплины
Фгос) по профессии начального профессионального образования (далее нпо), входящей в состав укрупненной группы профессий 230000 Информатика...
Информатика и вычислительная техника iconРабочая программа учебной дисциплины Основы алгоритмизации и программирования...
Фгос нпо, входящей в состав укрупненной группы профессий 230000 Информатика и вычислительная техника, по направлению подготовки 230100...
Информатика и вычислительная техника iconПрограмма учебной ди c циплины основы информационных технологий правительство...
Фгос) по профессии начального профессионального образования (далее нпо) входящей в состав укрупненной группы профессий 230000 Информатика...
Информатика и вычислительная техника iconРабочая программа дисциплины объектно-ориентированное программирование...
Фгос впо к структуре и результатам освоения основных образовательных программ бакалавриата по Профессиональному циклу по направлению...
Информатика и вычислительная техника iconПрограмма дисциплины «философия» по направлениям подготовки 230100...
Программа предназначена для преподавателей, ведущих данную дисциплину, ассистентов и студентов направлений 230100 «Информатика и...
Информатика и вычислительная техника iconУчебная
Фгос по профессии 230103. 03 Наладчик компьютерных сетей, входящей в состав укрупненной группы направлений подготовки и специальностей...
Информатика и вычислительная техника iconРабочая программа дисциплины экономика направление подготовки: 230100....
Программа предназначена для бакалавров по направлениям 230100. 62 информатика и вычислительная техника; все неэкономические направления,...
Информатика и вычислительная техника iconПрограмма дисциплины «Социальная философия» по направлениям подготовки...
Программа предназначена для преподавателей, ведущих данную дисциплину, ассистентов и студентов направлений 230100 «Информатика и...
Информатика и вычислительная техника iconПрограмма дисциплины «История России» для направления 230100. 62...
Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная...
Информатика и вычислительная техника iconПрограмма дисциплины «История России» для направления 230100. 62...
Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная...
Информатика и вычислительная техника iconПрограмма дисциплины «История России» для направления 230100. 62...
Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная...
Информатика и вычислительная техника iconПрограмма дисциплины «Системы управления, ориентации и навигации»...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки специальности...
Информатика и вычислительная техника iconПрограмма дисциплины «Лазерная гироскопия» для специальности 230100....
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки специальности...
Информатика и вычислительная техника iconРабочая программа дисциплины системы и сети пакетной коммутации (сспк)...
Рабочая программа предназначена для преподавания дисциплины «Системы и сети пакетной коммутации» студентам заочной сокращенной формы...
Информатика и вычислительная техника iconПрограмма выпускной квалификационной работы (диссертации) магистра...
Программа выпускной квалификационной работы (диссертации) магистра по направлению «Информатика и вычислительная техника» кафедры...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск