Scripting 为什么pbs(dsh)将我的任务安排在一个节点上?

Scripting 为什么pbs(dsh)将我的任务安排在一个节点上?,scripting,distributed-computing,pbs,Scripting,Distributed Computing,Pbs,我想在两个不同的节点上执行foo.sh。因此,我写了以下脚本: #!/home/farago/bin/dash qsub -N dist -o P -e P-err -V -v "EXECSCRIPT=foo.sh" -l walltime=12:00:00,nodes=2:ppn=1 Cluster_ExecExp_pbsdsh.sh 使用Cluster_ExecExp_pbsdsh.sh: #!/home/farago/bin/dash #PBS -l nodes=2:

我想在两个不同的节点上执行foo.sh。因此,我写了以下脚本:

#!/home/farago/bin/dash    
qsub -N dist -o P -e P-err -V -v 
  "EXECSCRIPT=foo.sh" 
  -l walltime=12:00:00,nodes=2:ppn=1 Cluster_ExecExp_pbsdsh.sh
使用Cluster_ExecExp_pbsdsh.sh:

#!/home/farago/bin/dash
#PBS -l nodes=2:ppn=1 
#PBS -l walltime=12:00:00          
/usr/bin/pbsdsh -v dash $EXECSCRIPT
奇怪的是,foo.sh总是在同一节点的两个CPU上执行:(

那么:为什么pbs(dsh)将我的任务安排在一个节点上,即使我已经指定了节点=2:ppn=1?(我必须在两个脚本中都给出这些参数吗?)


更新:如果foo.sh包含

#!/bin/bash

echo "foostart" >> /home/farago/output.txt
cat $PBS_NODEFILE >> /home/farago/output.txt
echo "fooend" >> /home/farago/output.txt
然后我得到output.txt:

foostart
cn11
cn11
fooend
foostart
cn11
cn11
fooend

因此,似乎给参数-l nodes=2:ppn=1 twices会导致qsub和pbsdsh两次分发作业。但我仍然不明白为什么作业没有安排在不同的机器上。

它只在一个节点上启动,因为您的作业只在一个节点上运行。我不确定调度程序为什么要启动您仅在cn11上,但$PBS_节点文件会告诉您作业使用的主机


如果可能的话,一些调度程序将您的请求合并到1个节点上,甚至节点的值大于1。这一部分并不奇怪。

您可以将cat$PBS_节点文件添加到作业中,并发布生成的输出吗?dbeer:我更新了我的原始帖子。您使用什么调度程序?我如何找到我使用的调度程序?如果您正在运行TORQUE,那么您是pr可能使用Moab、Maui或PBSPro进行调度。谁是您的系统管理员?他们应该能够告诉您正在使用哪个调度程序。哦,有些调度程序会这样做,了解(+1)非常有帮助.你知道我是如何更改调度程序还是禁止他合并的吗?我更新了我的原始帖子,它显示cn11在一次运行中输出了两次。也很奇怪,但不是调度程序问题。对吗?我更新了我的答案,现在我看到它只执行了两次。