計算スタッフがすべてのノードにアクセスできるキューと、他のスタッフが時折(ただし重い)使用するためにノードの半分にアクセスできる2番目のクラスターキューを備えたSGEベースの計算クラスターが必要です。 。
2番目のキューのリソースを制限して、comp以外のユーザーが時折(ただし大量に)使用する場合でも、計算スタッフが作業を継続できるようにします。スタッフ。
1つのノードコレクションの2つ(またはそれ以上)のSGEキューを設定して、1つのキューにすべてのノードを含めることができ、2番目のキューに同じノードのサブセットを含めて両方のキューが同時に動作するようにする方法はありますか?
このようなものを設定するために、どの特定のSGE構成パラメーターを調査しますか?
確かに、これは完全に可能です。 SGEキューは互いに独立しているため、各キューに任意のノードを割り当てて、必要に応じてオーバーラップさせることができます。
キューを作成するには、qconf -aq
と入力します。これにより、デフォルトのエディター(通常はvim)が開きます。キューの名前をqname
として入力し、割り当てるホストをhostlist
に追加し、slots
の場合は、のエントリのコンマ区切りリストを追加します。形式[hostname=numslots]
。通常、スロットの数はホスト内のコアの数ですが、必要に応じてサブスクライブをアンダーまたはオーバーすることができます。キューをオーバーラップさせたい場合は、同じホストを複数のキューに追加するだけです。
ただし、デフォルトでは、重複するキューは互いの使用法を認識しないことに注意してください。どちらも元気に同じノードにジョブを割り当て、実行されることを期待します。
これを防ぐ最も一般的な方法は、ノードをジョブ専用にすることです。そのため、一度に実行できるジョブは1つだけです。 (これは、PBSなどの他のスケジューラーのデフォルトです。)SGEはこれを少し複雑にし、ノードごとに1回だけ使用できる仮想「リソース」の作成を伴います。これを行うには、qconf -mc
と入力して消耗品リソースを管理します。これにより、消費可能なリソースを一覧表示するエディターが開きます。次のように、「排他的」と呼ばれる新しいエディターを追加します。
#name shortcut type relop requestable consumable default urgency
#-----------------------------------------------------------------------------------------
exclusive excl BOOL EXCL YES YES 1 1000
詳細については、 grid engine wiki を参照してください。
いわゆる従属キューを構成することもできます。ここでは、ノードごとに特定の数を超えるスロットが割り当てられたときに、他のキューを自動的にオーバーライドするように1つのキューを設定します。これを設定するには、qconf -mq queue1
を実行し、「従属」の下でqueue2=N
を指定します。次に、queue1のノードで使用されるスロットの数が終わると[〜#〜] n [〜#〜]、queue2のジョブは次のようになります。 queue1ジョブが完了するまで中断されます。