機能ポリシーは、機能カテゴリのエンタイトルメントの分配を定義します。さらにこのポリシーは、これらの各カテゴリのすべてのメンバーに関する分配を定義します。そのため、機能ポリシーは、2 レベルの共有ツリーに類似しています。異なる点は、ジョブは複数のカテゴリに同時に関連付けることができる、という点です。たとえば、ジョブは特定のユーザーに属するだけでなく、ジョブはプロジェクト、部署、およびジョブクラスに属することも可能です。
ただし、共有ツリーと同様に、機能カテゴリからジョブが受けるエンタイトルメントの配分は、次の要素によって決まります。
対応するカテゴリメンバー (たとえばそのプロジェクト) に対して定義されている配分
カテゴリ (ユーザー、部署などではなく、プロジェクト) に与えられている配分
sched_conf(5) の share_functional_shares パラメータを設定するには、「Share Functional Tickets」チェックボックスを使用します。このパラメータは、ジョブの配分の決定にカテゴリメンバーの配分をどのように使用するかを定義します。特定のユーザーやプロジェクトなどのカテゴリメンバーに割り当てられた配分をすべてのジョブに繰り返すことも、カテゴリメンバーのジョブの間で配分を振り分けることもできます。
「Share Functional Tickets」チェックボックスを選択すると、機能配分がジョブの間で繰り返されることを意味します。
「Share Functional Tickets」チェックボックスをクリアすると、機能配分がジョブの間で分配されることを意味します。
こうした配分は株式に例えることができます。このような配分は、同じカテゴリメンバーに属するジョブには何の意味もありません。どちらの場合も、同じカテゴリメンバーのすべてのジョブは同じ数の配分を受けます。しかし、同じカテゴリ内の配分量の比較では、配分数は意味を持ちます。「Share Functional Tickets」チェックボックスを選択すると、同じカテゴリメンバーに属する多くの兄弟を持つジョブが受け取る配分は比較的少なくなります。一方、「Share Functional Tickets」チェックボックスをクリアすると、すべての兄弟ジョブは、そのカテゴリーメンバーと同じ分配量を受け取ります。
そのすべてのジョブの合計に関して一定のエンタイトルメントレベルをカテゴリメンバーに与えるには、「Share Functional Tickets」チェックボックスを選択します。ただし、ジョブに多くの兄弟が存在する場合、各ジョブのエンタイトルメントは、無視できるほど小さくなることがあります。
カテゴリメンバーのエンタイトルメントに基づいて、各ジョブに同じエンタイトルメントレベルを与えるには、「Share Functional Tickets」チェックボックスをクリアします。システム内のジョブの兄弟の数は問題にはなりません。
多数のジョブを抱えるカテゴリメンバーは、機能ポリシーを優先使用する可能性があります。
share functional shares の設定は、分配される機能チケットの合計数を決定しないことに注意してください。合計数は常に、機能ポリシーのチケットプールに対して管理者により定義されたものです。share functional shares パラメータは、単に機能ポリシー内での機能チケットの分配方法に影響するだけです。
この例は、share override 機能ポリシーのチケット機能を理解することなく、SGE-5.3 スケジューラのオプション -user_sort true を N1GE 6.1 構成に変換しようとする場合の一般的なシナリオを表しています。
ユーザーに基づく単純な均等割当では、次のパラメータを使用してグローバル構成 sge_conf(5) を設定します。
-enforce_user auto |
-auto_user_fshare 100 |
次に、スケジューラ構成 sched_conf(5) で -weight_tickets_functional 10000 を使用します。この操作によって、ユーザーごとに 100 の配分がスケジューリングされた、ユーザーに基づく均等割当に対して、機能ポリシーが使用されます。