2017-06-28 32 views
0

PBS高性能コンピュータジョブスケジューラを使用して2つの計算ジョブを連結しようとしています。次のように私のスクリプトは、次のとおりです。スクリプト1.pbsが配列であるので配列PBSジョブの連結

#!/bin/bash 
#PBS -N 2 
#PBS -q thin 
#PBS -l walltime=0:03:00 
#PBS -l select=1:ncpus=1 
#PBS -j oe 

cd $PBS_O_WORKDIR 
echo 'SCRIPT 2' 

:スクリプト2.pbsと呼ば

#!/bin/bash 
#PBS -N 1 
#PBS -q thin 
#PBS -l walltime=0:03:00 
#PBS -l select=1:ncpus=1 
#PBS -j oe 
#PBS -J 1-10 

cd $PBS_O_WORKDIR 
echo 'SCRIPT 1' 
qsub -W depend=afterok:${PBS_ARRAY_ID} 2.pbs 

スクリプトは、1.pbsと呼ばれます(スクリプトを10コピー実行する)、アレイがスクリプトを終了したとき2.pbsもそれぞれ10個ずつ実行されますアレイジョブ中に1.pbsを提出した)。

私の質問は:どのように配列として、通常、スクリプト1.pbs実行を持っているとして、私はセットアップこれら2つのスクリプトができ、その後、すべての配列ジョブは、スクリプト2.pbsを終えた後ONLY ONCE実行されます。

答えて

0

1つの方法:qsubを実行する条件として、1.pbsに/ tmp /のセマフォファイルを指定します。

0

第1ジョブの内部から「qsub -W depend」を実行しないでください。このような

実行して:

my1job = qsub 1.pbs qsubの依存-W = afterok:$ my1job 2.pbs