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

时间:2013-12-05 23:16:57

标签: scripting distributed-computing pbs

我想在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)将我的任务安排到一个节点上,即使我已指定nodes = 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两次分配作业。但我仍然不明白为什么这些工作没有安排在不同的机器上。

1 个答案:

答案 0 :(得分:1)

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

如果可能,某些调度程序会将您的请求合并到1个节点上,即使节点的值为>这一部分并不奇怪。