【问题标题】:Why does pbs(dsh) schedule my task onto one node?为什么 pbs(dsh) 将我的任务安排到一个节点上?
【发布时间】:2013-12-14 02:13:20
【问题描述】:

我想在 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 两次会导致 qsub 和 pbsdsh 两次分配作业。但我仍然不明白为什么作业没有安排在不同的机器上。

【问题讨论】:

  • 您可以将 cat $PBS_NODEFILE 这一行添加到您的工作中并发布生成的输出吗?
  • dbeer:我已经更新了我原来的帖子。
  • 你使用什么调度器?
  • 如何找出我使用的调度程序?
  • 如果您正在运行 TORQUE,那么您可能正在使用 Moab、Maui 或 PBSPro 进行调度。你的系统管理员是谁?他们应该能够告诉您您正在使用哪个调度程序。

标签: scripting distributed-computing pbs


【解决方案1】:

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

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

【讨论】:

  • 哦,一些调度程序会这样做,了解 (+1) 非常有帮助。你知道我怎么改变调度器或禁止他合并吗?
  • 我已经更新了我的原始帖子,这表明 cn11 在一次运行中输出了两次。也很奇怪,但不是调度程序问题。对吗?
  • 我更新了我的答案,因为我看到它只是被执行了两次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多