2013-08-23 203 views
14

如何将作业发送到PBS/TORQUE中的特定节点? 我想你必须在节点之后指定节点名称。如何将作业提交给PBS中的特定节点

#PBS -l nodes=abc 

但是,这似乎并没有工作,我不知道为什么。 这个问题在这里问上PBS and specify nodes to use

这里是我的示例代码

#!/bin/bash 
#PBS nodes=node9,ppn=1, 
hostname 
date 
echo "This is a script" 
sleep 20 # run for a while so I can look at the details 
date 

另外,我该如何检查哪个节点上运行作业吗?我看到$PBS_NODEFILE显示的细节,但它似乎并不适合我。

+0

您是否尝试删除'#!/ bin/bash'。我想知道如果bash将'#PBS'解释为评论... – iamauser

+0

我没有尝试过。所以你认为我应该在第一行写什么? – Ashwin

+0

还有一个命令来了解作业正在哪个节点上运行,我的意思是通过echo显示。我知道从终端我可以这样做,使用qstat -n – Ashwin

回答

17

你可以这样说:

#PBS -l nodes=<node_name> 

您还可以指定处理器数量:

#PBS -l nodes=<node_name>:ppn=X 

或者你可以要求额外的节点,特定或不特定:

#PBS -l nodes=<node_name1>[:ppn=X][+<node_name2...] 

这给你多个特定的节点。

#PBS -l nodes=<node_name>[:ppn=X][+Y[:ppn=Z]] 

这就要求具有来自该节点的X个执行槽的特定节点,以及每个具有Z个执行槽的附加Y节点。

注意:这是所有TORQUE/Moab。它可能会或可能不适用于其他PBS资源管理器/调度程序。

+1

此答案不适用于PBS Pro> v10或v11。 PBS Pro改变了这种选择的语法。有关信息,请参阅用户指南的第5章。我只是自己熟悉它,所以不想在这里尝试正义。 – dtlussier

+1

没错,这个答案是专门为TORQUE设计的。 – dbeer

+0

我怎么知道我的集群有什么PBS资源管理器? (在不询问管理员的情况下,终端上是否有可以使用的命令?) – becko

相关问题