LSF-bsub のインクルードパスの設定

LSF-bsub のインクルードパスの設定

HPC で大きなジョブを実行しています。ただし、ジョブ用にインストールされているプログラムは古いバージョンで、ホーム ディレクトリには新しいバージョンがあります。任意のノードにログインし、 を使用して新しいバージョンへのパスをエクスポートできますexport PATH=/home/bharat/scratch/bin/:$PATH。ただし、ログイン シェルでパスをエクスポートし、 を使用してジョブを送信した場合bsub、新しくエクスポートされたパスがジョブを実行しているすべてのノードで使用されるかどうかはわかりません。

これらのファイルをデフォルトのインクルードディレクトリの1つにコピーすることはできますが、私のシステム管理者はすぐにそれを実行しようとはしません。

すべてのノードへのパスをエクスポートする最良の方法は何ですか? エクスポート コマンド + ジョブ コマンドを使用してシェル スクリプトを作成し、このスクリプトを bsub に渡すことはできますか?

答え1

すべてのノードへのパスをエクスポートする最良の方法は何ですか? エクスポート コマンド + ジョブ コマンドを使用してシェル スクリプトを作成し、このスクリプトを bsub に渡すことはできますか?

はい。PATH を設定してプログラムを起動するスクリプト ( という名前にしますmyscript) を作成します。次に、コマンド ライン でジョブを送信します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

関連情報