Скомпилируйте и запустите программу OpenMPI - PullRequest
3 голосов
/ 21 августа 2011

Кластер, который я использую, имеет несколько типов хостов - разные дистрибутивы / версии Linux, некоторые 32-битные, некоторые 64-битные, разные версии GCC. Я знаю, что я должен скомпилировать мою программу с платформо-зависимой оболочкой MPI для GCC. Этот шаг мне более или менее понятен.

Моя программа использует фиксированное количество хостов, и каждый хост запускает ровно 1 процесс. Потоки разделяемой памяти обрабатываются TBB, поэтому в основном мне нужен MPI только для распределения работы между хостами.

Последним шагом будет запуск программы на всех хостах. Оказывается, это та часть, которую я не знаю, как это сделать, и мои ИТ-специалисты не могли мне помочь.

У меня есть список IP-адресов хостов (точнее, локальных адресов, что-то вроде 192.168.1.xxx), а также имя пользователя и пароль для каждого хоста. Какие шаги нужно выполнить для запуска моей программы на всех хостах, при условии, что это был компилятор с компилятором для конкретной платформы и скопированный на каждый хост? Любая помощь приветствуется.

1 Ответ

3 голосов
/ 21 августа 2011

Вам нужен беспарольный доступ по SSH ко всем машинам, хост-файл, исполняемый файл на всех машинах.Убедитесь, что исполняемый файл имеет одинаковый (относительный) путь на всех компьютерах.

Hostfile (на главном компьютере):

# my_hostfile 
192.168.0.205
192.168.0.208

Команда для открытия MPI:

mpirun --hostfile my_hostfile programname

Для доступа без пароля по SSH создайте мастер-ключ в ~/.ssh

ssh-keygen -t rsa

Добавьте (одну строку) содержимое ~/.ssh/rsa.pub со своего главного компьютера в новую строку в ~/.ssh/authorized_keys2 на целевых машинах.(Вместо RSA вы можете использовать другую криптосистему SSH.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...