Установка и настройка пакета MPICH2

1. Скачать пакет MPICH2 по одной из ссылок:

http://www.mpich.org/static/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

http://www.mcs.anl.gov/research/projects/mpich2staging/goodell/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

2. На каждом компьютере, который планируется использовать в вычислительном кластере, выполнить установку данного пакета с правами администратора. В начале установки инсталлятор попросит указать пароль, который будет использоваться установленным ПО для связи между узлами кластера. Пароль должен быть одинаковым на всех компьютерах. Устанавливать в папку по умолчанию или в любую папку, путь к которой не содержит русских букв; при этом обязательно выбрать установку для всех пользователей.

3. На каждом компьютере через «Панель управления» Windows создать нового пользователя (например, с именем «MPI») и обязательно задать ему пароль. На всех компьютерах кластера созданные пользователи должны быть «одинаковыми» с точки зрения выбранных имени и пароля. Не требуется давать созданным пользователям права администратора. В дальнейшем для работы установленного пакета входить в Windows под именем данного пользователя не нужно: достаточно лишь, чтобы такой пользователь был создан на данном компьютере.

4. Убедиться, что на каждом компьютере в службах Windows появилась и работает служба «Process manager service for MPICH2 applications». Если служба не появилась, запустить файл C:\Program Files\MPICH2\bin\smpd.exe с параметром «‑install».

5. На каждом компьютере кластера дать файлам

C:\Program Files\MPICH2\bin\smpd.exe C:\Program Files\MPICH2\bin\mpiexec.exe

C:\Program Files\MPICH2\bin\wmpiconfig.exe

C:\Program Files\MPICH2\bin\wmpiexec.exe

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

6. Объединить все компьютеры по локальной сети (проводной или WiFi) в «рабочую группу» (например, с именем Workgroup). С помощью команды ping убедиться, что все компьютеры «видят» друг друга.

7. На одном из компьютеров (на любом) создать пустую папку и дать к ней общий доступ по сети для чтения/записи. Проследить за тем, чтобы количество пользователей, одновременно имеющих доступ к этой папке, было не меньше количества хостов (компьютеров, подключенных к сети), считая и тот компьютер, на котором эта папка создана. Убедиться, что все хосты имеют полный доступ к этой папке.

8. На каждом хосте запустить программу

C:\Program Files\MPICH2\bin\ wmpiregister.exe

В появившемся окне вписать имя и пароль пользователя Windows, который был заведен в пункте 3. После ввода нажать кнопку «Register». Если пользователь/пароль были введены с ошибкой (или по какой-то причине изменились), то сначала нужно нажать кнопку «Remove» (параметр будет удален из реестра), после чего повторно ввести имя/пароль и нажать на кнопку «Register».

9. На каждом хосте запустить программу

C:\Program Files\MPICH2\bin\wmpiconfig.exe

В появившемся окне в списке «Domain» выбрать название рабочей группы, после чего нажать кнопку «Get Hosts». В нижней белой табличке появятся имена всех хостов, найденных программой и доступных в данный момент.

Нажать кнопку «Scan Hosts». Все найденные хосты (включая и тот, на котором запущен wmpiconfig.exe) должны быть отмечены зеленым цветом. Если это так, то вычислительный кластер создан и готов к работе. Следует нажать кнопки «Apply All» и «OK» для сохранения результата.

Если какие-то хосты отмечены серым цветом, то к ним с данного компьютера нет доступа. Скорее всего, проблема заключается в настройках файрвола на этом или «сером» компьютере. Для проверки рекомендуется попробовать временно отключить файрвол и снова нажать «Scan Hosts».

10. Протестировать работоспособность кластера. Для этого сделать следующее.

11. В общую папку, выделенную в пункте 7, скопировать файл

C:\Program Files\MPICH2\examples\cpi.exe

12. На одном из хостов кластера (на любом, если пункт 9 выполнен нормально на всех хостах) запустить программу

C:\Program Files\MPICH2\bin\wmpiexec.exe

В появившемся окне справа от верхнего пустого поля нажать кнопку «…», зайти в общую сетевую папку и выбрать файл cpi.exe. Путь и название файла отобразятся в верхнем поле.

13. Внизу окна выбрать флажок «more options». Окно будет развернуто вниз. В строке «hosts» вручную вписать имена всех хостов, которые будут участвовать в распределенных вычислениях. Имена хостов можно взять из списка, который появляется в программе wmpiconfig.exe после нажатий кнопки «Get Hosts» (см. пункт 9).

14. В верхней части окна под кнопкой «…» указать количество процессов, на которое будет распараллелена решаемая задача. Количество процессов рекомендуется выбирать равным количеству процессоров (на хостов, а процессоров) в кластере. Например, если в кластер входят пять компьютеров с двухъядерными процессорами, то следует указать число 10.

15. Установить флажок «run in a separate window». Также можно щелкнуть на кнопке «Show Command» – будет отображена командная строка, которую генерирует оболочка wmpiexec.exe, запуская «главную» программу mpiexec.exe.

16. Нажать кнопку «Execute». Если наша программа смогла соединиться со всеми хостами, а все хосты смогли добраться до файла «cpi.exe», лежащего в общей папке, то в появившемся окне будет сообщение на ввод: «Enter the number of intervals: (0 quits) ». Если данное сообщение не появилось, то где-то что-то не работает.

17. Ввести число 1000000000 и нажать «Enter». Через некоторое время (от 10 секунд до 1 минуты) появится результат с указанием количества секунд, затраченных на вычисление.

18. Закрыть окно, и в окне программы wmpiexec.exe указать число процессов, равное количеству хостов (а не процессоров) кластера. Нажать кнопку «Execute», ввести 1000000000 и дождаться появления результата. Поскольку мы (для двухъядерных компьютеров) уменьшили число процессоров в два раза, то программа должна выполняться приблизительно в два раза дольше.

19. Если число 1000000000 слишком велико для используемых компьютеров (программа работает больше 1 минуты), то программу можно прервать и в дальнейшем использовать меньшие числа (например, 10000000). Если же программа срабатывает слишком быстро (1-2 секунды или меньше), то для повышения точности эксперимента число можно увеличить.

20. Если все работает, то вычислительный кластер настроен, протестирован и готов к работе. Дальнейшей задачей является настройка компилятора Visual C++ для работы с библиотекой MPICH2.

Наши рекомендации