我正在使用numpy在使用sun Grid引擎分配作业(starcluster)的集群上运行许多重复相同的工作。我的每个节点都有2个核心(AWS上的c3.large)。所以说我有5个节点,每个节点有2个核心。
numpy中的矩阵运算一次可以使用多个核心。我发现的是,SGE将立即发送10个作业,每个作业都使用核心。这导致作业的运行时间更长。看看htop,看起来每个核心上的两个工作都在争夺资源。
如何告诉qsub每个节点分配1个作业。那么当我提交我的工作时,一次只能运行5个,而不是10个?
答案 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。