如何使用qsub Univa 8.1.7在多个节点上安排作业?

时间:2014-11-28 17:53:25

标签: qsub

我希望能够在多个节点上安排作业,每个节点有一个进程。我还希望该进程使用使用该节点上可用的所有核心的线程。我知道" ppn"用于安排PBS作业,所以我尝试使用Univa调度程序。冒号分隔符不起作用,所以我使用了两个' -l'标志。我试过

qsub -cwd -j y -l nodes=4 -l ppn=1 -N hellonodes mpirunscript.sh

这给出了

  

无法运行工作:未知资源" ppn"。

     

退出。

在qsub的手册页中说明了

  

complex(5)描述了可用资源及其列表                 可以获得相关的有效值说明符。

遗憾的是,我正在使用的群集上不存在此类文档。但是,我发现了一个here。最后我发现要获取可设置资源值列表,我需要运行

qconf - sc

此输出如下(缩写):

#name               shortcut   type        relop   requestable consumable default  urgency 
#------------------------------------------------------------------------------------------
...
cpu                 cpu        DOUBLE      >=      YES         NO         0        0
...
m_numa_nodes        nodes      INT         <=      YES         NO         0        0
m_socket            socket     INT         <=      YES         NO         0        0
m_thread            thread     INT         <=      YES         NO         0        0
...
num_proc            p          INT         ==      YES         NO         0        0
...
slots               s          INT         <=      YES         YES        1        1000
...

&#34; PPN&#34; (没有列出PBS的每个节点的进程),也没有找到类似的东西。任何人都可以告诉我这是否可能,如果是的话,怎么样?

1 个答案:

答案 0 :(得分:1)

由于它是一个并行作业,您需要使用-pe请求并行环境 管理员必须创建一个首先满足您要求的并行环境。然后它是持久的,可以用于这种类型的并行作业。请参阅:http://www.gridengine.eu/mangridengine/htmlman5/sge_pe.html

创建并行环境:qconf -ap mype 列出所有PE:qconf -spl 然后将PE附加到您的队列:qconf -mq all.q(如果是all.q) - &GT; “pe_list mype”

重要的是:allocation_rule 在这里你需要设置:1 - &gt;这意味着每个计算主机有一个进程。

将插槽设置​​为较高的值(例如群集中的核心数量)。这是使用此并行环境的所有作业的限制。

然后您或您的用户可以开始您的工作:qsub -pe mytpe 8 myscript.sh

然后,您将获得此作业的8个计算节点,每个节点有1个插槽。 qstat -g t显示你在哪里。

这有帮助吗?

丹尼尔