LINUX.ORG.RU

linux Cluster OpenMPI

 , ,


2

1

Здравствуйте.

Пытаюсь собрать кластер для вычислений использую мануал http://cluster.linux-ekb.info/ubuntu.php.
Kоротко о нем
Установлен Intel Fortran, OpenMPI на все машины (3 штуки + 1 консоль) Настроен общий каталог по nfs. В нем компилируется, запускается программка flops взятая с того же сайта. Спокойно запускается через mpirun на несколько процессоров одной машины (любой), но стоит запустить на других узлах, выдает сообщение об ошибке: не могу мол найти библиотеку, такого типа:

Flops: error while loading shared libraries: libifport.so.5: cannot open shared object file: No such file or directory

ldd выдает все Ок на всех узлах и консоли.

Где то есть косяк но не могу понять где, по скольку с Linux мало знаком, подскажите пожалуйста...

Косяк скорее всего в переменной LD_LIBRARY_PATH, которая почему то не проставляется при запуске через mpirun на других хостах. Задачи удаленно через rsh запускаются? Какой шел используется?

Reset ★★★★★ ()
Ответ на: комментарий от tyki-tyki

mpirun запускает всё через ssh? точно? попробуй собрать маленькую программку gcc и распечатай ей окружение через mpirun

Reset ★★★★★ ()
Ответ на: комментарий от tyki-tyki

Ты коннектишься так, а mpirun может быть делает по другому. Обычную Сишную программу, которая печатает окружение в stdout запусти через mpirun.

Reset ★★★★★ ()

Спокойно запускается через mpirun на несколько процессоров одной машины (любой), но стоит запустить на других узлах, выдает сообщение об ошибке

Вот тут ошибка. На всех машинах запускаемый файл должен находиться по одному и тому же пути, например, как у меня.

/opt/FDS/FDS5/bin/fds5_openmpi
Аналогично, для каждой машины должен быть одинаковым путь, к рабочему каталогу. Например, у меня:
/mpi_fds/project_name/

Ещё один нюанс, при настройке безпарольного доступа к машинам, при использовании openmpi надо указать, из-под какого пользователя на этих машинах будем запускать программу: ~/.ssh/config

Host remote_hostname
User remote_user_name

Запуская mpirun **** в соответствии с конфигурационным файлом /etc/openmpi/openmpi-default-hostfile openmpi автоматически запустит требуемые экземпляры программы на указанных нодах, запускать будет из под тех пользователей, что прописаны в ~/.ssh/config.

Jurik_Phys ★★★★★ ()
Ответ на: комментарий от Jurik_Phys

Вот тут ошибка. На всех машинах запускаемый файл должен находиться по одному и тому же пути, например, как у меня.

они находятся общем каталоге /work... этот же каталог на консоли находится там же openmpi стоит везде одинаково /opt/openmpi

Ещё один нюанс, при настройке безпарольного доступа к машинам, при использовании openmpi надо указать, из-под какого пользователя на этих машинах будем запускать программу: ~/.ssh/config

такого файла у меня нет, но я похожу обхожу это дело тем что у меня одинаковый юзер на всех машинах

tyki-tyki ()
Ответ на: комментарий от Reset

это понятно, я про то что не смогу написать программу

которая печатает окружение в stdout.

а может она где то есть готовая ^^?

tyki-tyki ()

Нашел на сайте OpenMPI что мол неправильно задается переменные PATH/LD_LIBRARY_PATH...

там пример приводится,

shell$ cd $HOME
shell$ mpicc mpi_hello.c -o mpi_hello
shell$ ./mpi_hello
Hello world, I am 0 of 1.
shell$ ssh node1.example.com

Welcome to node1.
node1 shell$ ./mpi_hello
Hello world, I am 0 of 1.
node1 shell$ exit

shell$ ssh node1.example.com $HOME/mpi_hello
mpi_hello: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory
shell$

я проделал то же самое с моей программой, такая же бойда, у меня они прописаны в ~/.bashrc так же пробовал /etc/bash.bashrc не помогает(
куда надо прописать переменные, в этом случае, что бы mpi понимал где искать?

tyki-tyki ()
Ответ на: комментарий от tyki-tyki

Я бы вручную, прописал имена тех пользователей, под которыми mpi подключается к нодам по ssh. Для теста можно прописать в .bashrc, что-нибудь, что могло бы зафиксировать выполнение команд из данного файла, например, записывать текщую дату в какой-нибудь файл.

Jurik_Phys ★★★★★ ()
17 июня 2013 г.

Не ставьте вы руками программы... ./configure && make && make install. Ставьте родные для дистрибутива пакеты и не будет таких проблем!

Решить можно, но зачем вам эта головная боль?

BattleCoder ★★★★★ ()
Ответ на: openmpi от titimovainar

Присоединяюсь. В дебиане пакеты есть. Если же надо собрать собственную программу, работающую под openmpi, то устанавливаете -dev пакеты и компилируете программу.

Jurik_Phys ★★★★★ ()
Ответ на: комментарий от titimovainar

Openmpi собрать с помощью интеловского компилятора? Или собрать расчётную программу с помощью интеловского компилятора, с подхватыванием системных библиотек openmpi?

Скорее всего второй случай. Необходимо установить dev пакеты, с заголовочными файлами openmpi, для debian'a он называется libopenmpi-dev. После этого программа должна собираться.

но тогда система обычно не видит openmpi

И что значит не видит? В дебиане появляется запускной файл mpirun, который может быть ссылкой либо на lammpi, либо на openmpi. С его помощью запускаете программу

mpirun -n X /opt/your_program/program.bin
Запустится X экземпляров программы. Но, возможно, как это было у меня, каждая программа будет работать не над единой вычислительной задачей, а каждая программа параллельно будет считать одно и тоже. Как раз, чтобы этого избежать, нужно пересобрать программу с установленными системынми библиотеками openmpi.

Jurik_Phys ★★★★★ ()
Последнее исправление: Jurik_Phys (всего исправлений: 3 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.