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

使用您的方法,您需要让您的 for 循环遍历 $PBS_NODEFILE 指向的文件中的所有条目,然后在循环内部您需要“ssh $i $PATH_TO_JOB_EXEC/job_executable &”。

另一种更简单的方法是替换 for 循环并等待:

pbsdsh $PATH_TO_JOB_EXEC/job_executable

这将在分配给您的工作的每个核心上运行您的程序副本。如果您需要修改此行为,请查看 pbsdsh 手册页中的可用选项。

于 2015-06-17T12:11:53.690 回答