Начиная с mpich версии 1.2.0 мы ввели новый медот обработки запуска, основанный на демонах. Этот механизм, требующий конфигурирования нового устройства, еще не достаточно широко протестирован, чтобы использоваться в кластерах по умолчанию, но мы надеемся, что в конечном итоге он станет таким. В этой версии mpich он был существенно улучшен и сейчас инсталлируется вместе с mpich по команде make install. В системах с gdb он поддерживает простой параллельный отладчик, который мы называем mpigdb.
Основной идеей является создание перед моментом запуска задачи сети демонов на машинах, которые будут исполнять процессоы MPI, а также на машине, где будет выполняться mpirun. После этого команды запуска задачи (и другие команды) будут обращаться к локальному демону и использовать уже существующие демоны для запуска процессов. Большая часть начальной синхронизации, выполняемой устройством ch_p4, устраняется, поскольку демоны могут использоваться во время выполнения для поддержки установки соединений между процессами.
Для использования нового механизма запуска Вы должны
configure with-device=ch_p4mpd
make
Демоны можно запустить вручную на удаленных машинах, используя номера портов, выделяемых демонам при их запуске:
fire% mpd &
223792
fire_55681: MPD starting
fire%
soot% mpd -h fire -p 55681 &
16629
soot_35836: MPD starting
soot%
Если демоны не могут назначить порты автоматически, можно найти машину и номер порта, используя команду mpdtrace:
fire% mpd &
fire% mpdtrace mpdtrace: fire_55681:lhs=fire_55681 rhs=fire_55681 rhs2=fire_55681
fire%
soot% mpd -h fire -p 55681 &
soot% mpdtrace
mpdtrace: fire_55681: lhs=soot_33239 rhs=soot_33239 rhs2=fire_55681
mpdtrace: soot_33239: lhs=fire_55681 rhs=fire_55681 rhs2=soot_33239
soot%
Вы можете использовать команду mpd -b для запуска демонов как настоящих демонов, отсоединенных от терминала. Этот метод имеет свои преимущества и недостатки.
Существует пара скриптов в каталоге mpich/mpid/mpd, которые могут помочь:
localmpds <number>запускает <number> экземпляров mpd на локальной машине. Это очень полезно для тестирования. Обычно Вы выполняете
mpd &для запуска одного mpd на локальной машине. Другие mpd на удаленных машинах могут быть запущены через rsh, если возможно:
remotempds <hostfile>где <hostfile> содержит имена других машин для запуска mpd. Это простой файл имен машин, не похожий по формату на файлы MACHINES, используемые устройством ch_p4, которые могут содержать комментарии и другие обозначения.
См. также скрипт startdaemons, который инсталлируется вместе с mpich.
mpirun -np 4 a.outВы можете остановить демонов командой mpichstop.