Смекни!
smekni.com

Алгоритмы параллельных процессов при исследовании устойчивости подкрепленных пологих оболочек (стр. 6 из 10)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.4 Установка MPICH в Windows

Необходимо загрузить последнюю версию MPICH2 со страницы http://www.​mcs. ​anl. ​gov/​research/​projects/​mpich2/​downloads/​index. php? ​ s=downloads. Загруженный инсталлятор необходимо запустить с привилегиями администратора на всех компьютерах, на которых планируется запуск MPI-программ.

Во время установки необходимо ввести пароль для доступа к менеджеру процессов SMPD. Он должен быть одинаковый на всех компьютерах:


Рис.5. Указание пароля для доступа к менеджеру процессов

В окне указания пути установки рекомендуется оставить каталог по умолчанию и выбрать пункт "Everyone":

Рис.6. Указание пути установки

Если Брандмауэр Windows спросит, разрешить ли доступ в сеть программе smpd. exe, то необходимо "Разрешить".

MPICH2 правильно установлен на ваш компьютер.

Однако, прежде чем переходить к настройке, обязательно следует проверить две вещи: запущена ли служба "MPICH2 Process Manager", и разрешён ли этой службе доступ в сеть.


Рис.7. Служба "MPICH2 Process Manager" в списке служб

Рис.8. Программы MPICH в списке исключений брандмауэра

Если какая-то из перечисленных программ отсутствует в списке разрешённых программ, то вы необходимо добавить её вручную. Соотвественно, C: \​program files\​mpich2\​bin\​mpiexec. exe, если отсутствует "Process launcher for MPICH2 applications", и C: \​program files\​mpich2\​bin\​smpd. exe, если отсутствует "Process manager service for MPICH2 applications".

3.5 Настройка MPICH

Рассмотрим настройку MPICH на примере конфигурации из двух компьютеров, объединённых в локальную сеть: один компьютер имеет сетевое имя MrBig и IP-адрес 192.168.1.4, другой - имя Small и адрес 192.168.1.3 MPI-программы планируется запускать с компьютера MrBIG. На обоих компьютерах установлены русскоязычные версии Windows. На MrBIG установлена Windows Vista, на Small - Windows XP. Каждый компьютер имеет двухъядерный процессор.

Прежде всего необходимо создать на всех компьютерах пользователя с одинаковым именем и паролем; от имени этого пользователя будут запускаться MPI-программы.

Wmpiregister

Как уже было сказано ранее, любое действие система MPICH выполняет от указанного имени пользователя.

Для того, чтобы спрашивать имя пользователя и пароль, используется программа Wmpiregister. Проблема в том, что имя пользователя и пароль спрашиваются достаточно часто.

Для того, чтобы этого избежать, Wmpiregister может сохранять имя пользователя и пароль в реестре Windows.


Рис.9. Программа Wmpiregister

"Cancel" - закрыть программу без выполнения какого-либо действия.

"OK" - передать введённые имя пользователя и пароль вызывающей программе.

"Remove" - нажатие этой кнопки удаляет сохранённые ранее имя пользователя и пароль из реестра Windows.

"Register" - сохраняет имя пользователя и пароль в реестре.

Wmpiconfig

Если все предыдущие шаги сделаны правильно, то в поле "version" в левой колонке таблицы будет написана версия установленного менеджера процессов (рис.10).


Рис.10. Программа Wmpiconfig

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

Слева-внизу имеется список компьютеров, с которыми работает программа настройки. Имя компьютера на белом фоне означает, что не было попыток связаться с этим компьютером; зелёный фон означает, что связь произведена успешно; серый фон означает, что при установлении связи возникла ошибка. Удалить компьютер из списка можно клавишей Del. Следует иметь в виду, что этот список предназначен только для удобства настройки, и не имеет никакого отношения к списку компьютеров, на которых будет запущена MPI-программа.

Кнопка "Get Hosts" получает список компьютеров в заданном домене или рабочей группе (задаётся в выпадающем списке "Domain"). Полученный список заменяет имеющийся список компьютеров или, если нажата кнопка "+", добавляет компьютеры к текущему списку.

Кнопка "Scan Hosts" получает настройки со всех компьютеров списка; кнопка "Scan for Versions" получает только номера версий.

Кнопка "Get Settings" получает текущие настройки того компьютера, имя которого введено в поле ввода "Host". При выборе компьютера в списке компьютеров его имя автоматически вводится в поле "Host". Если нажата кнопка "Click", то настройки будут получены автоматически при выборе компьютера из списка.

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

Кнопка "Apply" применяет выделенные галочкой настройки к тому компьютеру, имя которого находится в поле "Host". Кнопка "Apply All" применяет настройки ко всем компьютерам списка.

Кнопка "Cancel" закрывает программу.

На том компьютере, с которого планируется запуск программ, необходимо указать список доступных вычислительных узлов. Этот список вводится через пробел в поле hosts левого столбца таблицы (рисунок 11). На рисунке показан пример, когда сам компьютер, с которого производится запуск MPI-программ, является одним из вычислительных узлов.


Рис.11. Список доступных вычислительных узлов

3.6 Создание общего сетевого ресурса

Для удобного запуска MPI-программ следует создать на одном из компьютеров общий сетевой ресурс с правом полного доступа для всех пользователей.

Рис.12. Окно свойств папки


Рис.13. Добавление разрешений для доступа к папке

3.7 Запуск MPI-программ

Для запуска MPI-программ в комплект MPICH2 входит программа с графическим интерфейсом Wmpiexec, которая представляет собой оболочку вокруг соответствующей утилиты командной строки Mpiexec. Графический интерфейс нагляднее консольного приложения, но в ряде случаев запуск Mpiexec из консоли гораздо удобнее. Разницы для процесса вычисления нет, в любом случае используется Mpiexec.