在 LSF-bsub 中设置包含路径

在 LSF-bsub 中设置包含路径

我在 HPC 上运行一个大作业。但是该作业安装的程序是旧版本,而我的主目录中有新版本。我可以登录到任何节点,使用 导出新版本的路径export PATH=/home/bharat/scratch/bin/:$PATH。但是我不确定如果我在登录 shell 中导出路径并使用 提交作业bsub,那么运行该作业的所有节点是否会使用新导出的路径。

我可以将这些文件复制到默认包含目录中,但我的系统管理员不太愿意很快帮我做这件事

现在将路径导出到所有节点的最佳方法是什么?我可以使用 export 命令 + job 命令编写一个 shell 脚本并将该脚本传递给 bsub 吗?

答案1

现在将路径导出到所有节点的最佳方法是什么?我可以使用 export 命令 + job 命令编写一个 shell 脚本并将该脚本传递给 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

相关内容