4

それぞれ 4 つの GPU を備えたマシンのクラスターがあります。各ジョブは 1 ~ 4 個の GPU を要求できる必要があります。問題は次のとおりです。SGE が各ジョブにどのGPU を使用すべきかを伝えてほしいのです。CPU とは異なり、GPU は、一度に 1 つのプロセスのみがアクセスする場合に最適に機能します。だから私はしたい:

Job #1  GPU: 0, 1, 3
Job #2  GPU: 2
Job #4  wait until 1-4 GPUs are avaliable

私が遭遇した問題は、SGE を使用すると、各ノードに 4 ユニットの GPU リソースを作成できますが、どの GPU を使用するかをジョブに明示的に通知しないことです (1、3、または 1 を取得するだけです)。なんでもいい)。

4 つのリソース ( gpu0, gpu1, gpu2, gpu3) を作成することを考えましたが、-lフラグが glob パターンを取るかどうかはわかりません。また、SGE がどの GPU リソースを受け取ったかをジョブに伝える方法もわかりません。何か案は?

4

2 に答える 2

4

複数の GPU があり、ジョブで GPU を要求したいが、Grid Engine スケジューラが空きGPU を処理して選択する必要がある場合は、(INT の代わりに) RSMAP (リソース マップ) 複合体を構成できます。これにより、ホスト構成で特定のホスト上の GPU の量と名前を指定できます。また、HOST コンシューマブルとして設定することもできます。これにより、リクエストのスロットに関係なく、-l cuda=2 でリクエストされる GPU デバイスの量が各ホスト 2 になります (並列ジョブが異なるホストで 8 スロットを取得した場合でも)。 )。

qconf -mc
    #name               shortcut   type        relop   requestable consumable default  urgency     
    #----------------------------------------------------------------------------------------------
    gpu                 gpu        RSMAP         <=      YES         HOST        0        0

実行ホスト構成では、ID/名前 (ここでは単純に GPU1 と GPU2) を使用してリソースを初期化できます。

qconf -me yourhost
hostname              yourhost
load_scaling          NONE
complex_values        gpu=2(GPU1 GPU2)

次に、-l gpu=1 を要求すると、GPU1 が別のジョブで既に使用されている場合、Univa Grid Engine スケジューラは GPU2 を選択します。qstat -j の出力で実際の選択を確認できます。ジョブは、$SGE_HGR_gpu 環境変数を読み取ることによって、選択された GPU を取得します。この場合、この環境変数には、選択された ID/名前「GPU2」が含まれます。これは、衝突することなく適切な GPU にアクセスするために使用できます。

マルチソケット ホストを使用している場合は、GPU と CPU 間の通信を高速化するために、GPU の近く (PCIe バスの近く) の一部の CPU コアに GPU を直接接続することもできます。これは、実行ホスト構成でトポロジ マスクをアタッチすることで可能になります。

qconf -me yourhost
hostname              yourhost
load_scaling          NONE
complex_values        gpu=2(GPU1:SCCCCScccc GPU2:SccccSCCCC)

UGE スケジューラが GPU2 を選択すると、ジョブが 2 番目のソケット (S) の 4 つのコア (C) すべてに自動的にバインドされるため、ジョブは最初のソケットで実行できなくなります。これには -binding qsub パラメータさえ必要ありません。

www.gridengine.euで、より多くの構成例を見つけることができます。

これらの機能はすべて、Univa Grid Engine (8.1.0/8.1.3 以降) でのみ使用でき、SGE 6.2u5 および他の Grid Engine バージョン (OGE、Sun of Grid Engine など) では使用できないことに注意してください。univa.com から 48 コアの限定無料バージョンをダウンロードして試すことができます。

于 2013-02-05T07:15:48.253 に答える
1

他のグリッド エンジン バリアントのいずれかを使用している場合は、クラスターで使用するスクリプトを調整してみてください: https://github.com/UCL/Grid-Engine-Prolog-Scripts

于 2013-10-16T15:00:03.737 に答える