Sun Grid Engine,每个节点强制执行一个作业

时间:2016-02-26 15:54:09

标签: python numpy parallel-processing sungridengine starcluster

我正在使用numpy在使用sun Grid引擎分配作业(starcluster)的集群上运行许多重复相同的工作。我的每个节点都有2个核心(AWS上的c3.large)。所以说我有5个节点,每个节点有2个核心。

numpy中的矩阵运算一次可以使用多个核心。我发现的是,SGE将立即发送10个作业,每个作业都使用核心。这导致作业的运行时间更长。看看htop,看起来每个核心上的两个工作都在争夺资源。

如何告诉qsub每个节点分配1个作业。那么当我提交我的工作时,一次只能运行5个,而不是10个?

1 个答案:

答案 0 :(得分:4)

步骤1:向群集添加复杂值。运行

qconf -mc

添加一行

exclusive        excl      INT         <=    YES         YES        0        0

步骤2:为每个节点定义该复杂值的值。

qconf -rattr exechost complex_values exclusive=1 <nodename>

这里我们设置为1独占。然后,当你启动工作时,请求&#34; 1&#34;那资源。例如:

qrsh -l exclusive=1 <myjob>

如果您愿意为每个节点创建2个作业,则可以在步骤2将该值定义为2.

编辑:这是如何为每个节点配置它。您可以在步骤1中为整个群集完成此操作,方法是将值设置为&#34;默认值&#34;列到1。