При запуске параллельной программы с использованием PBS или же без него может задача может не запуститься со следующей ошибкой
mpiexec: cannot connect to local mpd (/tmp/mpd.console_user); possible causes:
1. no mpd is running on this host
2. an mpd is running but was started without a "console" (-n option)
Ошибка в том, что не была запущена служба mpd, которая связывает узлы и процессоры между собой для их параллельной работы. Если прочитать сообщение, то там написано, что ее нужно просто запустить.
Возможно, закономерный вопрос, почему служба сразу не запускается по умолчанию? Не запускается она потому что для каждого нового пользователя она должна быть запущена заново. Если пользователь работает редко на кластере, то служба со времени отключится за экономией ресурсов.
Для обычного многоядерного ПК можно было бы ее запустить командой
mpd &
потому что на обычном ПК имеется всего 1 узел. В случае кластера службу mpd нужно запустить на всех узлах кластера. Поэтому используем 2 команды
mpdallexit
которая завершит все запущенные службы mpd на всех узлах, в случае, если вдруг на одном из узлов она была запущена, но Вы на нем не считали, а попали на узел без mpd. И затем
mpdboot -n 10 -f /home/user/sys/mpd.hosts
Запускаем службу mpd на 10 узлах, которые он возьмет из файл mpd.hosts, который находится в домашнем каталоге в папке sys.
После всего этого можно заново запускать программу на счет, и все будет нормально
mpiexec: cannot connect to local mpd (/tmp/mpd.console_user); possible causes:
1. no mpd is running on this host
2. an mpd is running but was started without a "console" (-n option)
Ошибка в том, что не была запущена служба mpd, которая связывает узлы и процессоры между собой для их параллельной работы. Если прочитать сообщение, то там написано, что ее нужно просто запустить.
Возможно, закономерный вопрос, почему служба сразу не запускается по умолчанию? Не запускается она потому что для каждого нового пользователя она должна быть запущена заново. Если пользователь работает редко на кластере, то служба со времени отключится за экономией ресурсов.
Для обычного многоядерного ПК можно было бы ее запустить командой
mpd &
потому что на обычном ПК имеется всего 1 узел. В случае кластера службу mpd нужно запустить на всех узлах кластера. Поэтому используем 2 команды
mpdallexit
которая завершит все запущенные службы mpd на всех узлах, в случае, если вдруг на одном из узлов она была запущена, но Вы на нем не считали, а попали на узел без mpd. И затем
mpdboot -n 10 -f /home/user/sys/mpd.hosts
Запускаем службу mpd на 10 узлах, которые он возьмет из файл mpd.hosts, который находится в домашнем каталоге в папке sys.
После всего этого можно заново запускать программу на счет, и все будет нормально
Комментариев нет:
Отправить комментарий