Estou executando um grande trabalho em um HPC. Mas os programas instalados para o trabalho são versões antigas e tenho as novas versões em meu diretório pessoal. Posso fazer login em qualquer nó, exportar o caminho para as novas versões usando export PATH=/home/bharat/scratch/bin/:$PATH
. No entanto, não tenho certeza se exporto o caminho em meu shell de login e envio um trabalho usando bsub
, então o caminho recém-exportado será usado por todos os nós que estão executando o trabalho.
Posso copiar esses arquivos em um dos diretórios de inclusão padrão, mas meu administrador de sistema não está muito ansioso para fazer isso em breve.
Qual é a melhor maneira agora de exportar o caminho para todos os nós? Posso escrever um script de shell com o comando export + o comando job e passar esse script para o bsub?
Responder1
Qual é a melhor maneira agora de exportar o caminho para todos os nós? Posso escrever um script de shell com o comando export + o comando job e passar esse script para o bsub?
Sim. Escreva um script (digamos, seu nome myscript
) que defina o PATH e então inicie seu programa. Em seguida, envie seu trabalho com a linha de comando bsub myscript
. Sua instalação local será usada em vez da instalação do sistema.
Uma opção ainda mais simples, o LSF irá definir as variáveis de ambiente do ambiente de envio no ambiente de execução, incluindo 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
Agora atualize seu caminho para incluir a instalação local do seu programa.
[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