MPIEXEC Использование неправильного количества процессоров
-
28-09-2019 - |
Вопрос
Я пытаюсь настроить кластер MPI. Но у меня есть проблема, что количество процессоров, добавленных в файл mpd.conf, не используется правильно. У меня есть три сервера Ubuntu. Opteron с 48 ядер Calc1 с 8 сердечниками Calc2 с 8 ядрами.
Мой mpd.hosts выглядит как:
opteron:46
calc1:6
calc2:6
После загрузки (MPDBoot -N 3 -F MPD.Hosts) система работает. MPDTRACE -> Все трое из них перечислены.
Но запуск программного обеспечения типа «MPIEXEC -N 58 RaxmlHPC-MPI ...» приводит к тому, что Calc1 и Calc2 добираются до многих рабочих мест, а Opteron попадает в немногие одновременно. Что я делаю неправильно?
С уважением
Бабушка
Решение
Я нашел обходной путь. Я использовал дополнительный параметр «-MachineFile /path/to/mpd.hosts» для команды mpiexec. И теперь все узлы бегут правильно. Одна проблема, которую я получил, это то, что я получен после сообщения об ошибке:
... MPIU_SHMW_SEG_CREATE_ATTACH_TEMPL (671): Открыть не удалось - нет такого файла или каталога ...
Чтобы исправить это, мне пришлось установить переменную среды MPICH_NO_LOCAL=1
Другие советы
Как вы выяснили, вы должны пройти машину для обоих mpdboot
а также mpiexec
Для того, чтобы использовать процессы для каждого хоста. Выпуск «Open Shife» - это известная ошибка в MPD, менеджер процессов, который вы используете. Обратите внимание, что то MPICH_NO_LOCAL=1
Обходной путь будет работать, но, вероятно, приведет к большой производительности для интранодового общения.
Вы четко используете MPICH2 (или производное MPich2), но неясно, какая вы используете версию. Если вы можете, я решительно рекомендую обновить в MPich2 1.2.1P1 или (еще лучше) 1.3.1. Обе эти выпуски включают более новый менеджер процессов гидра Это намного быстрее и крепче. В 1.3.1 Hydra - это менеджер процессов по умолчанию. Это не требует mpdboot
фаза, и она поддерживает $HYDRA_HOST_FILE
Переменная среды, так что вам не нужно указывать машинный файл на каждом mpiexec
.