2

そのため、現在、 を使用してクラスターでジョブを送信していますがqsub、常に単一のノードで実行されているようです。私は現在、実行してそれらを実行しています

#PBS -l walltime=10
#PBS -l nodes=4:gpus=2
#PBS -r n
#PBS -N test

range_0_total = $(seq 0 $(expr $total - 1)) 

for i in $range_0_total
do
    $PATH_TO_JOB_EXEC/job_executable &
done
wait

私が何か間違ったことをしているのか、それとも私のテスト タスクが小さすぎるだけなのかを教えていただければ、非常にありがたいです。

4

1 に答える 1

2

あなたのアプローチでは、$PBS_NODEFILE が指すファイル内のすべてのエントリを for ループで処理する必要があり、ループ内で「ssh $i $PATH_TO_JOB_EXEC/job_executable &」が必要になります。

これを行うもう 1 つの簡単な方法は、for ループを次のように置き換えて待機することです。

pbsdsh $PATH_TO_JOB_EXEC/job_executable

これにより、ジョブに割り当てられた各コアでプログラムのコピーが実行されます。この動作を変更する必要がある場合は、pbsdsh の man ページで利用可能なオプションを確認してください。

于 2015-06-17T12:11:53.690 に答える