2

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

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

我如何告诉 qsub 为每个节点分配 1 个作业。这样当我提交作业时,一次只会运行 5 个,而不是 10 个?

4

1 回答 1

5

步骤 1:向您的集群添加一个复杂的值。跑

qconf -mc

添加一行

exclusive        excl      INT         <=    YES         YES        0        0

第 2 步:对于每个节点,为该复杂值定义一个值。

qconf -rattr exechost complex_values exclusive=1 <nodename>

在这里,我们将独占设置为 1。然后,当您启动作业时,请求该资源的“1”。例如。:

qrsh -l exclusive=1 <myjob>

如果您愿意每个节点有 2 个作业,则可以在第 2 步将该值定义为 2。

编辑:这是如何为每个节点配置它。通过将“默认”列中的值设置为 1,您可以在步骤 1 中为整个集群完成此操作。

于 2016-02-26T16:36:37.777 回答