2017-12-11 7 views
0

クラスタで並列ジョブを実行しようとしていますが、毎回エラーが発生します。「共有ライブラリのロード中にエラーが発生します:liblammps.so:共有オブジェクトファイルを開くことができません:いいえそのようなファイルまたはディレクトリ "と呼びます。私はライブラリパスを別名「export LD_LIBRARY_PATH =/path/to/library」にエクスポートする必要があることを知っています。ローカルでそれを実行してからプログラムを実行するとすべてが問題ありません。クラスタにジョブを提出してから問題が発生したときだけです。私のスクリプトは次のようになりますSGE qsubスクリプトで共有ライブラリエラーが発生しました

#!/bin/bash 

LD_LIBRARY_PATH=/path/to/library 
for i in 1 2 3 
do 

    qsub -l h_rt=43200 -l mem=1G -pe single 1 -cwd ./Project-Serial.sh 
    qsub -l h_rt=43200 -l mem=1G -pe mpi-spread 2 -cwd ./Project-MPI.sh 2 
    qsub -l h_rt=28800 -l mem=1G -pe mpi-spread 4 -cwd ./Project-MPI.sh 4 
    qsub -l h_rt=19200 -l mem=1G -pe mpi-spread 8 -cwd ./Project-MPI.sh 8 
    qsub -l h_rt=12800 -l mem=1G -pe mpi-spread 16 -cwd ./Project-MPI.sh 16 
    qsub -l h_rt=8540 -l mem=1G -pe mpi-spread 32 -cwd ./Project-MPI.sh 32 

done 

私は単に間違った場所にパスを設定しているかどうか分かりませんか?または、ライブラリを使用する他の方法がありますか?どんな助けもありがとうございます。

答えて

0

qsub -v Variable_Listを使用して特定の環境変数を渡すか、qsub -Vを使用して完全な環境を渡すことができます。そこから、サブタスクがライブラリファイル(またはmpichの場合は-env)に依存する場合は、mpiexec -xを使用する必要があります。

関連する問題