Скачать 376.62 Kb.
|
Интерфейс MPI, как основная среда межпроцессорной передачи данныхВзаимодействие между узлами вычислительного кластера происходит на уровне обмена сообщениями. Для этого используется интерфейс MPI. Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Основные разработчики Уильямом Гроуппом, Эвином. MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается MPI Forum. В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI. Существуют реализации для языков Фортран 77/90, Си и Си++. В первую очередь MPI ориентирован на системы с распределенной памятью, то есть когда затраты на передачу данных велики, в то время как OpenMP ориентирован на системы с общей памятью (многоядерные с общим кэшем). Обе технологии могут использоваться совместно, дабы оптимально использовать в кластере многоядерные системы. Интерфейс MPI стал фактически стандартом в сфере взаимодействия между узлами кластера. Для различных платформ существуют различные варианты реализации интерфейса MPI:
Если учитывать то, что операционные системы семейства Linux являются наиболее распространенными на вычислительных кластерах, то наиболее распространёнными и развиваемыми являются реализации MPI именно для этих платформ. Однако не стоит забывать, что и компания Microsoft стремительно развивает свои технологии в области высокопроизводительных вычислений. Рассмотрим наиболее популярные из реализаций MPI. 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 состоит из следующих компонентов:
Менеджер процессов является основным компонентом, который должен быть установлен и настроен на всех компьютерах сети (библиотеки времени выполнения можно, в крайнем случае, копировать вместе с MPI-программой). Остальные файлы требуются для разработки MPI-программ и настройки некоторого «головного» компьютера, с которого будет производиться их запуск. Менеджер работает в фоновом режиме и ждёт запросов к нему из сети со стороны «головного» менеджера процессов (по умолчанию используется сетевой порт 8676). Чтобы как-то обезопасить себя от хакеров и вирусов, менеджер требует пароль при обращении к нему. Когда один менеджер процессов обращается к другому менеджеру процессов, он передаёт ему свой пароль. Отсюда следует, что нужно указывать один и тот же пароль при установке MPICH на компьютеры сети. Рисунок - Схема работы MPICH на кластере В современных кластерах сеть передачи данных обычно отделяется от управляющей сети Запуск MPI-программы производится следующим образом:
Очень важным моментом здесь является то, что перед запуском MPI-программа не копируется автоматически на вычислительные узлы кластера. Вместо этого менеджер процессов передаёт узлам путь к исполняемому файлу программы точно в том виде, в котором пользователь указал этот путь программе Mpirun. Это означает, что если вы, например, запускаете программу C:\programm.exe, то все менеджеры процессов на вычислительных узлах будут пытаться запустить файл C:\ programm.exe. Если хотя бы на одном из узлов такого файла не окажется, произойдёт ошибка запуска MPI-программы. Чтобы каждый раз не копировать вручную программу и все необходимые для её работы файлы на вычислительные узлы кластера, обычно используют общий сетевой ресурс. В этом случае пользователь копирует программу и дополнительные файлы на сетевой ресурс, видимый всеми узлами кластера, и указывает путь к файлу программы на этом ресурсе. Дополнительным удобством такого подхода является то, что при наличии возможности записи на общий сетевой ресурс запущенные копии программы могут записывать туда результаты своей работы. Работа MPI-программы происходит следующим образом: Программа запускается и инициализирует библиотеку времени выполнения MPICH путём вызова функции MPI_Init. Библиотека получает от менеджера процессов информацию о количестве и местоположении других процессов программы, и устанавливает с ними связь. После этого запущенные копии программы могут обмениваться друг с другом информацией посредством библиотеки MPICH. С точки зрения операционной системы библиотека является частью программы (работает в том же процессе), поэтому можно считать, что запущенные копии MPI-программы обмениваются данными напрямую друг с другом, как любые другие приложения, передающие данные по сети. Консольный ввод-вывод всех процессов MPI-программы перенаправляется на консоль, на которой запущена Mpirun. Насколько я понимаю, перенаправлением ввода-вывода занимаются менеджеры процессов, так как именно они запустили копии MPI-программы, и поэтому могут получить доступ к потокам ввода-вывода программ. Перед завершением все процессы вызывают функцию MPI_Finalize, которая корректно завершает передачу и приём всех сообщений, и отключает MPICH. Все описанные выше принципы действуют, даже если вы запускаете MPI-программу на одном компьютере. 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. В качестве аргументов утилита принимает число эмулируемых процессов, имена хостов, рабочую директорию и имя файла. Большее внимание необходимо уделять системам мониторинга оборудования вычислительного кластера. Система мониторинга – это контролирующее звено. При обнаружении нового оборудования, неисправностей в работе сети или любых других изменениях она должна уведомить администратора. К основным задачам системы мониторинга кластера можно отнести:
Наиболее известным и часто используемой системой мониторинга кластера для Linux является Gunglia. При мониторинге кластера под ОС Windows часть задач берет на себя система управления кластером и сама операционная система. Необходимо иметь резервные каналы доступа к вычислительным узлам кластера. Для Linux кластеров основным протоколом доступа является ssh. В качестве резервных каналов связи можно использовать протокол VNC или программное обеспечение ServNet. Вычислительные кластеры претерпевают постоянные изменения в своей архитектуре, в специфики работы в программном обеспечении. Уже сегодня можно основными направлениями развития рынка HPC является повышение производительности и уменьшение затрат на эксплуатацию вычислительного кластера. Эти показатели могут быть достигнуты при использовании:
ЗАКЛЮЧЕНИЕВ работе были проанализированы методы построения и организации вычислительных кластеров. Приведены иллюстрации и описания для типов кластеров. Было приведено описание используемого программного обеспечения для их организации. Рассмотрены преимущества и недостатки используемого программного обеспечения. Рассмотрен весь цикл установки вычислительного кластера. Были предложены советы по повышению производительности и оптимизации работы вычислительного кластера. Список использованной литературы
|
Программа разработана в соответствии с: Федеральному Государственному... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов для направления 230100. 68... | Учебной дисциплины Фгос) по профессии начального профессионального образования (далее нпо), входящей в состав укрупненной группы профессий 230000 Информатика... | ||
Рабочая программа учебной дисциплины Основы алгоритмизации и программирования... Фгос нпо, входящей в состав укрупненной группы профессий 230000 Информатика и вычислительная техника, по направлению подготовки 230100... | Программа учебной ди c циплины основы информационных технологий правительство... Фгос) по профессии начального профессионального образования (далее нпо) входящей в состав укрупненной группы профессий 230000 Информатика... | ||
Рабочая программа дисциплины объектно-ориентированное программирование... Фгос впо к структуре и результатам освоения основных образовательных программ бакалавриата по Профессиональному циклу по направлению... | Программа дисциплины «философия» по направлениям подготовки 230100... Программа предназначена для преподавателей, ведущих данную дисциплину, ассистентов и студентов направлений 230100 «Информатика и... | ||
Учебная Фгос по профессии 230103. 03 Наладчик компьютерных сетей, входящей в состав укрупненной группы направлений подготовки и специальностей... | Рабочая программа дисциплины экономика направление подготовки: 230100.... Программа предназначена для бакалавров по направлениям 230100. 62 информатика и вычислительная техника; все неэкономические направления,... | ||
Программа дисциплины «Социальная философия» по направлениям подготовки... Программа предназначена для преподавателей, ведущих данную дисциплину, ассистентов и студентов направлений 230100 «Информатика и... | Программа дисциплины «История России» для направления 230100. 62... Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная... | ||
Программа дисциплины «История России» для направления 230100. 62... Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная... | Программа дисциплины «История России» для направления 230100. 62... Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки «Информатика и вычислительная... | ||
Программа дисциплины «Системы управления, ориентации и навигации»... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки специальности... | Программа дисциплины «Лазерная гироскопия» для специальности 230100.... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки специальности... | ||
Рабочая программа дисциплины системы и сети пакетной коммутации (сспк)... Рабочая программа предназначена для преподавания дисциплины «Системы и сети пакетной коммутации» студентам заочной сокращенной формы... | Программа выпускной квалификационной работы (диссертации) магистра... Программа выпускной квалификационной работы (диссертации) магистра по направлению «Информатика и вычислительная техника» кафедры... |