Depth-Oblivious Fair-share Factor
Contents
- Introduction
- Depth-Oblivous Fair-Share Formula
- The Effective Usage Ratio Under an Account Hierarchy
- Configuration
Introduction
The depth-oblivious fair-share factor is a variant of the default
fair-share factor which increases usable priority ranges and improves
fairness between accounts in deep and/or irregular hierarchies. The
reader is assumed to be familiar with the priority/multifactor plugin
and only the specifics of the depth-oblivious factor are documented
here
深さを気にしないフェアシェアファクターは、デフォルトのフェアシェアファクターのバリアントであり、使用可能な優先度の範囲を増やし、深い階層や不規則な階層のアカウント間の公平性を向上させます。読者は、priority / multifactorプラグインに精通していることが前提であり、ここでは、奥行きを気にしない要素の詳細のみが文書化されています。
Depth-Oblivous Fair-Share Formula
The main formula for calculating the fair-share factor of an account is:
アカウントのフェアシェア係数を計算するための主な式は次のとおりです。
F = 2^(-R)
where:
- F
- is the fair-share factor
フェアシェア要素です
- R
- is the effective usage ratio of the account
アカウントの有効利用率
This formula resembles the original fair-share formula, and
produces the same result for an account at the first level of the tree
(under root). Indeed, for first-level accounts, the effective usage
ratio R is equal to the usage ratio r defined as:
この式は元のフェアシェア式に似ており、ツリーの最初のレベル(ルートの下)のアカウントに対して同じ結果を生成します。実際、第1レベルのアカウントの場合、有効使用率Rは、次のように定義された使用率rに等しくなります。
r = U/S
where:
- S
- is the normalized shares
は正規化されたシェアです
- U
- is the normalized usage factoring in half-life decay
半減期の減衰を因数分解して正規化したものです
which is the same as the orginal formula.
The Effective Usage Ratio Under an Account Hierarchy
The generalized formula for R is a bit more complex. It involves a
local usage ratio rl:
Rの一般化された式はもう少し複雑です。ローカル使用率rlが含まれます。
rl = r / (Uall_siblings/Sall_siblings)
which is the ratio between the usage ratio of an account, and the
total usage ratio of all the siblings at his level including
itself. For example, assuming that all the children of an account have
used in total two times their combined shares (which equal the shares
of the parent account), but that one of the child has used only two
thirds of his shares, the local usage ratio of that child will be of
one third.
これは、アカウントの使用率と、自分自身を含む彼のレベルのすべての兄弟の合計使用率との比率です。たとえば、アカウントのすべての子が合計で2倍のシェア(親アカウントのシェアに等しい)を使用したが、子の1つが彼のシェアの3分の2しか使用していないと仮定すると、ローカル使用率その子の3分の1になります。
The general formula for R is then defined by:
Rの一般式は次のように定義されます。
R = Rparent * rl^k
where:
- k
- varies between 0 and 1 and determines how much the effective usage
ratio of an account is determined by the usage ratio of its ancestors.
0と1の間で変化し、アカウントの有効使用率が祖先の使用率によって決定される量を決定します。
To understand the formula for k, it is useful to first make a few
observations about the formula for R. On the one hand, if k equals 1,
the above formula gives R = Rparent * rl. For a
second-level account, by plugging in the formula for rl,
this leads to R = r *
Uparent/Uall_siblings. Assuming jobs are
submitted at leaf accounts, Uparent =
Uall_siblings which gives R = r. This means that if k
equals 1, the fair-share factor of an account is only based on its own
usage ratio. On the other hand, if k equals 0, R = Rparent
which means the fair-share factor of an account is only based on the
usage ratio of its ancestors.
kの式を理解するには、最初にRの式についていくつかの観察を行うと便利です。一方、kが1の場合、上記の式はR = Rparent * rlになります。第2レベルのアカウントの場合、rlの数式をプラグインすると、R = r * Uparent / Uall_siblingsになります。ジョブがリーフアカウントで送信されると仮定すると、Uparent = Uall_siblingsでR = rになります。これは、kが1の場合、アカウントのフェアシェア係数はそれ自体の使用率にのみ基づいていることを意味します。一方、kが0の場合、R = Rparentは、アカウントのフェアシェア係数がその祖先の使用率にのみ基づいていることを意味します。
The formula for k is:
k = (1/(1+(5*ln(Rparent))^2)) if ln(Rparent)*ln(rl) <= 0 k = 1 if ln(Rparent)*ln(rl) >= 0
This formula is chosen to ensure that, if the usage of the
ancestors of an account is on target, the fair-share factor of the
account mainly depends on its own usage. Therefore k tends towards 1
when Rparent tends towards 1. On the contrary, the more the
ancestors of an account have underused/overused their shares, the more
the fair-share factor of the account should get a bonus/malus by
moving towards the fair-share factor of its parent. Therefore, k tends
towards 0 when Rparent diverges from 1. However, if the
account usage imbalance is greater than its ancestors' in the same
direction, (for exemple, the ancestors have consumed two times their
shares, and the child has consumed 3 times its shares), moving the
fair-share factor back towards the one of the parent is not
helpful. As a result, k is kept to 1 in that case.
この式は、アカウントの祖先の使用が目標に達している場合、アカウントのフェアシェア係数が主にその使用に依存するように選択されています。したがって、Rparentが1に近づくと、kは1に近づきます。逆に、アカウントの先祖がシェアを使いすぎたり、使いすぎたりするほど、アカウントのフェアシェアファクターはフェアに近づくことでボーナス/マイナスを受け取るはずです。 -その親のシェア係数。したがって、Rparentが1から逸脱すると、kは0に向かう傾向があります。ただし、アカウントの使用の不均衡がその先祖の同方向よりも大きい場合(たとえば、先祖はシェアを2倍消費し、子は3倍消費しました)そのシェア)、フェアシェア係数を親の1つに戻すことは役に立ちません。その結果、その場合、kは1に保たれます。

Figure 1. Plot of k as a function of Rparent
Configuration
The following slurm.conf (SLURM_CONFIG_FILE) parameters are used
to enable the depth-oblivious flavor of the fair-share factor. See
slurm.conf(5) man page for more details.
次のslurm.conf(SLURM_CONFIG_FILE)パラメーターは、フェアシェアファクターの深さを気にしないフレーバーを有効にするために使用されます。詳細については、slurm.conf(5)のマニュアルページを参照してください。
- PriorityFlags
- Set to "DEPTH_OBLIVIOUS".
「DEPTH_OBLIVIOUS」に設定します。
- PriorityType
- Set this value to "priority/multifactor".
The default value for this variable is "priority/basic"
which enables simple FIFO scheduling.
この値を「priority / multifactor」に設定します。この変数のデフォルト値は「priority / basic」で、これにより単純なFIFOスケジューリングが可能になります。
Last modified 30 October 2013