(Это кластер Скалы?)
Видимо, вы не получаете права $LD_LIBRARY_PATH
по некоторым причинам.
Это не очень чистое решение, но оно должно работать:
$ screen -L env LD_LIBRARY_PATH=$LD_LIBRARY_PATH mpirun -np 2 \
-H compute-0-0,compute-0-1 echo 1
Я предполагаю, что это то, что вы пытались сделать с опцией -xLD_LIBRARY_PATH
, но я не вижу, чтобы в документации мне удалось найти.
Это то, что вы пытались сделать с опцией -xLD_LIBRARY_PATH
, но это только собирает значение $LD_LIBRARY_PATH
из процесса, вызванного screen
(и передает его команде echo 1
). К тому времени уже поздно. Кроме того, справочная страница предполагает наличие пробела: -x LD_LIBRARY_PATH
; Я не знаю, требуется ли это.
Есть ли какой-нибудь скрипт, который вы используете для получения среды (включая $LD_LIBRARY_PATH
) для MPI? Это происходит автоматически при запуске вашей оболочки входа в систему, или вы делаете это вручную? Возможно, вы захотите написать небольшой скрипт-обертку, который будет источником сценария установки, а затем вызовет указанную команду. Что-то вроде (не проверено):
#!/bin/sh
. /share/apps/intel/openmpi/etc/setup.sh # probably not the right name
exec "$@"
Сохраните его как $HOME/bin/mpienv.sh
, тогда вы можете использовать:
$ screen -L mpienv.sh mpirun -np 2 -H compute-0-0,compute-0-1 echo 1