Программирование с использованием Intel MPI. Введение
Компиляция и запуск программ в MPI-1. Файлы конфигурации
MPI-1
При запуске MPI-программ с использованием Remote Shell в ОС Linux следует создать файл .rhosts.
Пример:
f01.ptc.spbu.ru f02.ptc.spbu.ru f03.ptc.spbu.ru f04.ptc.spbu.ru
Права доступа:
r w - - - - - - -
Файл machines:
Пример файла machines
f01.ptc.spbu.ru f02.ptc.spbu.ru f03.ptc.spbu.ru f04.ptc.spbu.ru fserver.ptc.spbu.ru:2
Трансляция
# mpicc -compile_info cc -DUSE_STDARG -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDARG_H=1 -DUSE_STDARG=1 -DMALLOC_RET_VOID=1 -I/usr/local/mpich/include –c # mpicc -link_info cc -DUSE_STDARG -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDARG_H=1 -DUSE_STDARG=1 -DMALLOC_RET_VOID=1 -L/usr/local/mpich/lib –lmpich # mpif77 -compile_info f77 -I/usr/local/mpich/include –c # mpif77 -link_info f77 -L/usr/local/mpich/lib -lmpich
Выполнение
mpirun –np n [ключи MPI] программа [ключи и аргументы программы]
Некоторые ключи загрузчика приложений mpirun:
-arch "архитектура"
Архитектура параллельной вычислительной системы, которая должна соответствовать суффиксу в имени файла machines."архитектура"
-machinefile файл
Использовать список компьютеров из указанного файла
Компиляция и запуск программ в MPI-2. Демон mpd. Файлы конфигурации
MPI-2
Демон mpd
В MPI-2 демон mpd играет важную роль. Параллельная программа может выполняться только если предварительно были запущены демоны mpd, образующие "кольцо демонов". Он управляет выполнением процессов MPI-программы на данном вычислительном узле. Демоны запускаются от имени конкретных пользователей ОС и не оказывают влияния друг на друга.
Некоторые факты из жизни демонов:
- Кольцо демонов создаётся один раз и может быть использовано многократно, разными программами одного пользователя.
- Кольцо демонов прекращает свой существование в результате выполнения команды mpdallexit.
- Кольцо демонов одного пользователя не может взаимодействовать с демонами mpd других пользователей.
- Благодаря демонам mpd запуск MPI-программ выполняется быстрее.
- Исключена возможность "зависания" процессов.
В программных реализациях MPI имеются средства управления работой демонов mpd. Запуску параллельной программы предшествует запуск демона mpd на всех узлах вычислительной системы. Демоны взаимодействуют друг с другом.
Запуск демонов (в этом примере 5) выполняется командой:
mpdboot –n 5
Проверка взаимодействия демонов между собой выполняется командой:
mpdtrace
Если при выполнении этой команды выводятся сообщения об ошибках, это говорит о неправильной настройке MPI или локальной сети.
Завершение работы демонов выполняется командой:
mpdallexit
Конфигурационный файл .mpd.conf | Файл mpd.hosts |
---|---|
Пример файла .mpd.conf | Пример файла .mpd.conf |
MPD_SECRETWORD=kalosha MPD_PORT_RANGE=1003:10003 |
pd00 ifhn=195.168.0.69 pd01 ifhn=192.168.0.74 pd02 ifhn=192.168.0.75 pd03 ifhn=192.168.0.76 pd04 ifhn=192.168.0.77 pd05 pd06 pd07 |
Запуск демонов
mpdboot –n число_демонов [ключи]
Запуск параллельной программы
mpiexec [ключи] –n число имя_исполняемого файла
Завершение работы всех демонов
mpdallexit