2

Sun Grid Engine を使用してジョブを分散するクラスター (starcluster) で、numpy を使用して同じジョブを何度も繰り返し実行しています。各ノードには 2 つのコアがあります (AWS では c3.large)。たとえば、5 つのノードがあり、それぞれに 2 つのコアがあるとします。

numpy の行列演算は、一度に複数のコアを使用できます。私が見つけたのは、SGE が 10 個のジョブを一度に送信し、各ジョブがコアを使用することです。これにより、ジョブの実行時間が長くなります。htop を見ると、各コアの 2 つのジョブがリソースをめぐって争っているように見えます。

ノードごとに 1 つのジョブを分散するように qsub に指示するにはどうすればよいですか。ジョブを送信すると、一度に実行されるのは 10 個ではなく 5 個だけですか?

4

1 に答える 1

5

ステップ 1: クラスターに複雑な値を追加します。走る

qconf -mc

のような行を追加します。

exclusive        excl      INT         <=    YES         YES        0        0

ステップ 2: ノードごとに、その複合値の値を定義します。

qconf -rattr exechost complex_values exclusive=1 <nodename>

ここでは、exclusive を 1 に設定します。次に、ジョブを起動するときに、そのリソースの「1」を要求します。例えば。:

qrsh -l exclusive=1 <myjob>

ノードごとに 2 つのジョブが必要な場合は、ステップ 2 でその値を 2 に定義できます。

編集:これは、ノードごとに構成する方法です。「デフォルト」列の値を 1 に設定することで、ステップ 1 でクラスター全体に対してそれを行うことができました。

于 2016-02-26T16:36:37.777 に答える