HPC Pack 2008 R2 Service Pack 2 (SP2) 以降では、リソース プールに基づいてリソースを割り当てる HPC ジョブ スケジューラ サービスを構成できます。 リソース プールは、特定のユーザー グループ (またはジョブの種類) に対して保証する必要があるクラスター コアの割合を定義するのに役立ちます。 ユーザー グループが保証されたすべてのコアを使用していない場合は、それらのコアを他のグループで使用できます。 ジョブ テンプレートを使用して、ユーザー グループをリソース プールに関連付ける必要があります。 ジョブ テンプレートを使用するジョブは、リソース プールに対して定義されているクラスター コアの割合をまとめて保証され、ジョブの優先順位、送信時刻、およびスケジュール モード (Queued または Balanced) に従ってプール内でスケジュールされます。 リソース プールのスケジュールは、同種のリソースを持つクラスターで最適に機能します。
サンプル シナリオ: 組織内のさまざまなユーザー グループがクラスターの予算に貢献しており、その代わりに、クラスターの特定の部分が破棄されることを想定しています。 特定の時点で、グループに軽いワークロードがあり、クラスターの共有全体を利用していない場合は、それらのリソースを一時的に他のグループで使用できるようにする必要があります。 そのため、可用性を保証し、クラスターの使用率を最大化するために、HPC ジョブ スケジューラ サービスでリソース プールに基づいてリソースを割り当てる必要があります。
このトピックでは、次の操作を行います。
リソース プールのプロパティについて
リソース プールには、次のプロパティがあります。
プロパティ | 定義 |
---|---|
重量 | クラスター管理者によって設定されます。 プールに対して保証する必要があるクラスター コアの割合を表す 0 ~ 999,999 の整数。 |
保証されたコアの | HPC ジョブ スケジューラ サービスによって設定されます。 プールに定義されている重みに対応するコアの数。 保証されるコアの数は、オンライン |
割り当てられたコア の |
HPC ジョブ スケジューラ サービスによって設定されます。 プールに送信されるジョブによって実際に使用されているコアの数。 この数は、保証されたコアの数より大きいか小さい場合があります。 |
重要な考慮事項
重みが 0 のプールには保証されたコアはありませんが、プールに送信されたジョブがあり、他のプールがすべてのリソースを使用していない場合は、コアを割り当てることもできます。
の既定のプール は削除できません。 HPC ジョブ スケジューラ サービスでリソース プールが有効になっている場合、プールを指定しないジョブでは既定のプールが使用されます。 カスタム プールとは異なり、既定のプールを指定しても、リソースの保証は提供されません。 既定のプールの重みを 0 に設定できます。
HPC ジョブ スケジューラ サービスが (プールの重みに応じて) 各リソース プールのコア数を計算すると、各プールの結果の値は最も近い整数に切り捨てられます。 残りのコアは既定のプールに追加されます。
ノード グループと要求されたノードの一覧には、クラスター リソースをジョブに割り当てる別の方法が用意されており、どちらもリソース プールと共に使用されるものではありません。 特定のノード グループ (または要求されたノードの一覧) とリソース プールの両方をジョブ テンプレートに追加すると、HPC ジョブ スケジューラ サービスは、両方のプロパティに基づいてクラスター リソースへのアクセスを個別に制限します。
リソース プールの構成
リソース プールを構成するには、1 つ以上のプールを定義し、プールをジョブ テンプレートに関連付ける必要があります。 たとえば、2 つのユーザー グループがあり、各グループは、グループ A 60%とグループ B 40%のクラスターの比率をいつでも使用できると想定しているとします。 グループ A には、個別のジョブ テンプレートが必要な 2 種類のジョブがあるとします。1 つの種類は優先度が高く、もう 1 つの種類は優先順位が低いとします。 目的のスケジュール ポリシーを適用するには、"GroupA_HighPriJobs"、"GroupA_LowPriJobs"、"GroupB_AllJobs" の 3 つのノード テンプレートを作成します。
重要
リソース プールを定義してジョブ テンプレートに関連付けた後、ジョブ スケジューラの設定でリソース プールのスケジュール設定を有効にする必要があります。 このトピック リソース プールの を有効にする方法に関する記事を参照してください。
リソース プールを定義するには
HPC クラスター マネージャーで、[構成
クリックします。 ナビゲーション ウィンドウで、[リソース プール
] をクリックします。 [
アクション] で、[プールとウェイト編集]をクリックします。 ダイアログ ボックスが表示されます。 ダイアログ ボックスで、[追加] 2 回クリックします。 プールの一覧に 2 つの新しい行が表示されます。
[プール名の
] 列で、プールの名前を PoolAし、PoolB 名前を変更します。 [重み 列に、各グループの目的の重み (60,40) を入力します。
Default プールの重みを 0 に設定します。
[OK]
クリックして、ダイアログ ボックスを保存して閉じます。
リソース プールをジョブ テンプレートに関連付けるには
ナビゲーション ウィンドウで、[ジョブ テンプレートの
] をクリックします。 [
アクション] で、[新しい] をクリックしてジョブ テンプレート ウィザードを開き、次のようにテンプレートを定義します。 名前: GroupA_HighPriJobs
最大優先度: 最も高い
既定の優先度: 最高
ジョブ テンプレート エディターでジョブ テンプレート "GroupA_HighPriJobs" を開き、プールとユーザーのアクセス許可を次のように定義します。
プール プロパティをテンプレートに追加し、[有効な値の ]で [PoolA] を選択します。
[アクセス許可
クリックし、グループ A のユーザーのみがそのテンプレートを使用してジョブを送信する権限を持っていることを確認します。 変更を保存します。
"GroupA_LowPriJobs" のジョブ テンプレートを次のように作成します。
ジョブ テンプレートの一覧で、[GroupA_HighPriJobs] を右クリックし、[コピー
] をクリックします。 コピーを右クリックし、[
編集] をクリックし、テンプレートを次のように定義します。 名前: GroupA_LowPriJobs
最大優先度: 標準
既定の優先度: BelowNormal
このテンプレートは "GroupA_HighPriJobs" に基づいているため、アクセス許可とプールは既に正しく設定されています。
次のプロパティを使用して、"GroupB_AllJobs" 用の新しいジョブ テンプレートを作成します。
名前: GroupB_AllJobs
最大優先度: 最も高い
既定の優先度: 標準
プール プロパティをテンプレートに追加し、[有効な値の ]で [PoolB] を選択します。
[アクセス許可 ] をクリックし、グループ B のユーザーのみが、そのテンプレートを使用してジョブを送信する権限を持っていることを確認します。
これで、ジョブ スケジューラの設定を使用してリソース プールのスケジュールを有効にする準備ができました。
リソース プールを有効にする
ジョブ スケジューラの構成設定で、リソース プールのスケジュール設定を有効にする必要があります。 これを行うには、HPC クラスター マネージャーを使用するか、コマンド ユーティリティを使用します。 リソース プールのスケジュール設定を有効にするには、次のいずれかの方法を使用します。
HPC クラスター マネージャー の
HPC クラスター マネージャーで、[
オプション] ] をクリックし、[ジョブ スケジューラの構成] をクリックします。 リソース プールの タブを選択します。
[リソース プール を有効にする
] チェック ボックスをオンにします。 OK をクリックします。
コマンド プロンプト ウィンドウの (管理者として実行)
cluscfg setparams コマンドを使用します。次に例を示します。
Cluscfg setparams enablepools=true
HPC PowerShell の
(管理者として実行) Set-HpcClusterProperty コマンドレットを使用します。次に例を示します。
Set-hpcclusterproperty -enablepools $true
関連情報
Microsoft HPC Pack でのジョブ スケジューラの構成の
ジョブ テンプレートの
ジョブ テンプレート レベルの送信またはアクティブ化フィルターを追加または削除する方法