我希望能够在多个节点上安排作业,每个节点有一个进程。我还希望该进程使用使用该节点上可用的所有核心的线程。我知道" 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的每个节点的进程),也没有找到类似的东西。任何人都可以告诉我这是否可能,如果是的话,怎么样?
答案 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显示你在哪里。
这有帮助吗?
丹尼尔