4

qsubStarCluster / SGE 集群上执行作业时,是否有一种简单的方法可以确保每个节点一次最多接收一个作业?我遇到了多个作业最终在同一个节点上导致内存不足 (OOM) 问题的问题。

我尝试使用-l cpu=8,但我认为这不会检查使用的核心数量,而只是检查盒子本身的核心数量。

我也尝试过-l slots=8,但后来我得到:

Unable to run job: "job" denied: use parallel environments instead of requesting slots explicitly.
4

3 回答 3

4

在您的配置文件 (.starcluster/config) 中添加此部分:

[plugin sge]
setup_class = starcluster.plugins.sge.SGEPlugin
slots_per_host = 1
于 2014-09-22T23:37:14.317 回答
1

很大程度上取决于集群资源的配置方式,即内存限制等。但是,要尝试的一件事是为每个作业请求大量内存:

-l h_vmem=xxG

由于该节点上的大部分内存已被另一个先前运行的作业请求,这将产生排除其他作业在节点上运行的副作用。

只要确保您请求的内存不超过节点的允许限制即可。您可以通过检查错误的输出来查看它是否绕过了此限制qstat -j <jobid>

于 2014-09-04T19:21:35.997 回答
-1

我通过使用以下方法将每个节点上的插槽数设置为 1 来完成此操作: qconf -aattr queue slots "[nodeXXX=1]" all.q

于 2014-09-10T21:02:41.703 回答