複数の 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 コアの限定無料バージョンをダウンロードして試すことができます。