Я выполняю большую работу на HPC. Но установленные программы для работы - старые версии, и у меня есть новые версии в моем домашнем каталоге. Я могу войти в любой узел, экспортировать путь к новым версиям, используя export PATH=/home/bharat/scratch/bin/:$PATH . Однако я не уверен, что если я экспортирую путь в свою оболочку входа в систему и отправлю задание с помощью bsub , то только что экспортированный путь будет использоваться всеми узлами, на которых выполняется задание.

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

Каков наилучший способ экспортировать путь во все узлы? Могу ли я написать сценарий оболочки с помощью команды экспорта + команда задания и передать этот сценарий bsub?

1 ответ1

0

Каков наилучший способ экспортировать путь во все узлы? Могу ли я написать сценарий оболочки с помощью команды экспорта + команда задания и передать этот сценарий bsub?

Да. Напишите скрипт (скажем, с именем myscript), который устанавливает PATH и затем запускает вашу программу. Затем отправьте свою работу с помощью командной строки bsub myscript . Ваша локальная установка будет использоваться вместо установки системы.

Еще более простой вариант, LSF установит переменные среды среды передачи в среду выполнения, включая PATH.

[mclosson@hostA ~]$ echo $PATH
/lsf/9.1/linux2.6-glibc2.3-x86_64/etc:/lsf/9.1/linux2.6-glibc2.3-x86_64/bin:/bin:/usr/bin
[mclosson@hostA ~]$ bsub -m hostB -Is 'echo $PATH'
Job <217> is submitted to default queue <interactive>.
<<Waiting for dispatch ...>>
<<Starting on hostB>>
/lsf/9.1/linux2.6-glibc2.3-x86_64/bin:/lsf/9.1/linux2.6-glibc2.3-x86_64/etc:/bin:/usr/bin

Теперь обновите ваш путь, чтобы он включал локальную установку вашей программы.

[mclosson@hostA ~]$ export PATH=/tmp/xxx:$PATH
[mclosson@hostA ~]$ bsub -m hostB -Is 'echo $PATH'
Job <218> is submitted to default queue <interactive>.
<<Waiting for dispatch ...>>
<<Starting on hostB>>
/lsf/9.1/linux2.6-glibc2.3-x86_64/bin:/tmp/xxx:/lsf/9.1/linux2.6-glibc2.3-x86_64/etc:/bin:/usr/bin

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .