mpiexec использует неверный номер процессора - PullRequest
1 голос
/ 01 ноября 2010

Я пытаюсь настроить кластер MPI.Но у меня проблема в том, что количество процессоров, добавленных в файл mpd.conf, используется неправильно.У меня есть три сервера Ubuntu.opteron с 48 ядрами calc1 с 8 ядрами calc2 с 8 ядрами.

Мои mpd.hosts выглядят так:
opteron:46<br> calc1:6<br> calc2:6

После загрузки (mpdboot -n 3 -f mpd.hosts) Система работает.mpdtrace -> перечислены все три из них.

Но выполнение такой программы, как «mpiexec -n 58 raxmlHPC-MPI ...», приводит к тому, что calc1 и calc2 получают много заданий, а opteron - одновременно несколько.время.Что я делаю не так?

С уважением

Bjoern

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Как вы выяснили, вы должны передать машинный файл как mpdboot, так и mpiexec, чтобы использовать число процессов для каждого хоста. Проблема с «открытым отказом» - это известная ошибка в MPD, менеджере процессов, который вы используете. Обратите внимание, что обходной путь MPICH_NO_LOCAL=1 будет работать, но, вероятно, приведет к значительному снижению производительности для внутрисетевого взаимодействия.

Вы явно используете MPICH2 (или производную MPICH2), но не ясно, какую версию вы используете. Если вы можете, я настоятельно рекомендую перейти на MPICH2 1.2.1p1 или (еще лучше) 1.3.1. Оба этих выпуска включают более новый диспетчер процессов под названием hydra , который намного быстрее и надежнее. В 1.3.1 Hydra является менеджером процессов по умолчанию. Он не требует фазы mpdboot и поддерживает переменную окружения $HYDRA_HOST_FILE, поэтому вам не нужно указывать машинный файл для каждого mpiexec.

1 голос
/ 01 ноября 2010

Я нашел обходной путь.Я использовал дополнительный параметр "-machinefile /path/to/mpd.hosts" для команды mpiexec.И теперь все узлы работают правильно.Одна проблема, которую я получил, заключалась в том, что я получил следующее сообщение об ошибке:

... MPIU_SHMW_Seg_create_attach_templ (671): открыть не удалось - нет такого файла или каталога ...

Чтобы исправить это, мне пришлосьустановить переменную окружения MPICH_NO_LOCAL=1

...