Я тестирую OpenMPI, предоставленный и скомпилированный другим пользователем (я использую программную ссылку на его каталоги для всех bin, include и т. д. - все обязательные каталоги), но я столкнулся с этой странной вещью:
Прежде всего, если я запустил mpirun с параметром -n ‹= 10, я могу запустить это ниже. testrunmpi.py просто выводит «run». от каждого ядра.
# I am in serverA.
bash-3.2$ /home/karl/bin/mpirun -n 10 ./testrunmpi.py
run.
run.
run.
run.
run.
run.
run.
run.
run.
run.
Однако, когда я попытался запустить -n больше 10, я столкнулся с этим:
bash-3.2$ /home/karl/bin/mpirun -n 24 ./testrunmpi.py
karl@serverB's password: Could not chdir to home directory /home/karl: No such file or directory
bash: /home/karl/bin/orted: No such file or directory
--------------------------------------------------------------------------
A daemon (pid 19203) died unexpectedly with status 127 while attempting
to launch so we are aborting.
There may be more information reported by the environment (see above).
This may be because the daemon was unable to find all the needed shared
libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
location of the shared libraries on the remote nodes and this will
automatically be forwarded to the remote nodes.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that the job aborted, but has no info as to the process
that caused that situation.
--------------------------------------------------------------------------
bash-3.2$
bash-3.2$
Permission denied, please try again.
karl@serverB's password:
Permission denied, please try again.
karl@serverB's password:
Я вижу, что работа отправляется на сервер B, а я был на сервере A. У меня нет учетной записи на serverB. Но если я вызову mpirun -n ‹= 10, работа будет на сервере А.
Это странно, поэтому я проверил /home/karl/etc/openmpi-default-hostfile и попытался установить следующее:
serverA slots=24 max_slots=24
serverB slots=0 max_slots=32
Но проблема сохраняется и по-прежнему выдает то же сообщение об ошибке, что и выше. Что мне нужно сделать, чтобы моя программа работала только на serverA?