Fair Tree Fairshare Algorithm
Contents
- Introduction
- Overview for End Users
- Algorithm
- Level Fairshare Calculation
- Ties
- sshare
- Configuration
- Important notes
Introduction
Fair Tree prioritizes users such that if accounts A and B are siblings and A has
a higher fairshare factor than B, all children of A will have higher fairshare
factors than all children of B.
フェアツリーは、アカウントAとBが兄弟であり、Aのフェアシェア係数がBよりも高い場合、Aのすべての子がBのすべての子よりも高いフェアシェア係数を持つようにユーザーに優先順位を付けます。
Some of the benefits include:
いくつかの利点は次のとおりです。
-
All users from a higher priority account receive a higher fair
share factor than all users from a lower priority account.
優先度の高いアカウントのすべてのユーザーは、優先度の低いアカウントのすべてのユーザーよりも高いフェアシェアファクターを受け取ります。
-
Users are sorted and ranked to prevent errors due to precision
loss.
精度の低下によるエラーを防ぐために、ユーザーは並べ替えられ、ランク付けされます。
Ties are allowed.
ネクタイは許可されています。
-
Account coordinators cannot accidentally harm the priority of
their users relative to users in other accounts.
アカウントコーディネーターは、他のアカウントのユーザーに対するユーザーの優先順位を誤って損なうことはありません。
-
Users are extremely unlikely to have exactly the same fairshare
factor as another user due to loss of precision in calculations.
計算の精度が低下するため、ユーザーが他のユーザーとまったく同じフェアシェア係数を持つ可能性は非常に低くなります。
-
New jobs are immediately assigned a priority.
新しいジョブにはすぐに優先順位が割り当てられます。
Overview for End Users
This section is intended for non-admin users who just want to know how their
fairshare factor is determined.
このセクションは、フェアシェア係数がどのように決定されるかを知りたいだけの管理者以外のユーザーを対象としています。
Run sshare -l
(lowercase "L") to
view the following columns: FairShare, Level FS
.
sshare -l(小文字の「L」)を実行して、FairShare、LevelFSの列を表示します。
Note that
Level FS values are infinity if the association has no usage.
アソシエーションに使用法がない場合、レベルFS値は無限大であることに注意してください。
If an account has a higher Level FS value than any other sibling user or
sibling account, all children of that account will have a higher FairShare value
than the children of the other account.
アカウントのレベルFS値が他の兄弟ユーザーまたは兄弟アカウントよりも高い場合、そのアカウントのすべての子は、他のアカウントの子よりも高いFairShare値を持ちます。
This is true at every level of the
association tree.
これは、アソシエーションツリーのすべてのレベルに当てはまります。
The FairShare value is obtained by using the Fair Tree
algorithm to rank all users in the order that they
should be prioritized (descending).
FairShare値は、Fair Treeアルゴリズムを使用して、すべてのユーザーを優先順位(降順)の順にランク付けすることによって取得されます。
The FairShare value is the user's rank
divided by the total number of user associations.
FairShare値は、ユーザーのランクをユーザーアソシエーションの総数で割ったものです。
The highest ranked user
receives a 1.0 fairshare value.
最高ランクのユーザーは、1.0のフェアシェア値を受け取ります。
If you (UserA) have a lower FairShare value than another user (UserB) and
want to know why, find the first common ancestor account.
あなた(UserA)のFairShare値が別のユーザー(UserB)よりも低く、その理由を知りたい場合は、最初の共通の祖先アカウントを見つけてください。
At the level
below the common ancestor, compare the Level FS value of your ancestor to the
Level FS value of UserB's ancestor.
共通の祖先より下のレベルで、祖先のレベルFS値をUserBの祖先のレベルFS値と比較します。
Your ancestor has a lower Level FS value
than UserB's ancestor.
あなたの祖先は、UserBの祖先よりも低いレベルFS値を持っています。
For information on how Level FS value is
calculated, read the section about the Level FS
equation.
レベルFS値の計算方法については、レベルFSの式に関するセクションを参照してください。
For example, assume the association tree contains UserA and UserB as
follows:
たとえば、関連付けツリーに次のようにUserAとUserBが含まれているとします。
root => Acct1 => Acct12 => UserA root => Acct1 => Acct16 => UserB
Acct1 is the first common ancestor of UserA and UserB.
Acct1は、UserAとUserBの最初の共通の祖先です。
Check the Level FS
values of Acct12 and Acct16.
Acct12およびAcct16のレベルFS値を確認します。
If UserB has a higher FairShare value than UserA,
Acct16 has a higher Level FS value than Acct12.
UserBのFairShare値がUserAよりも高い場合、Acct16のレベルFS値はAcct12よりも高くなります。
The sections below contain more information about the algorithm, including
how the final fairshare factor and the Level FS values are calculated.
以下のセクションには、最終的なフェアシェア係数やレベルFS値の計算方法など、アルゴリズムに関する詳細情報が含まれています。
Algorithm
An equation is used to calculate a Level Fairshare value for each
association, only considering the shares and usage of itself and its siblings.
方程式は、各アソシエーションのレベルフェアシェア値を計算するために使用され、それ自体とその兄弟のシェアと使用法のみを考慮します。
A
rooted plane tree (PDF download), also known as a rooted
ordered tree, is logically created then sorted by Level Fairshare with the
highest values on the left.
ルート化されたプラタナスツリー(PDFダウンロード)は、ルート化された順序付きツリーとも呼ばれ、論理的に作成されてから、左側が最も高いレベルのフェアシェアで並べ替えられます。
The tree is then visited in a depth-first
traversal.
次に、深さ優先探索でツリーが訪問されます。
Users are ranked in pre-order as they are found.
ユーザーは、見つかった時点で先行予約でランク付けされます。
The ranking is
used to create the final fairshare factor for the user.
ランキングは、ユーザーの最終的なフェアシェア係数を作成するために使用されます。
The algorithm performs a single traversal of the tree since all the steps
can be combined.
すべてのステップを組み合わせることができるため、アルゴリズムはツリーの1回の走査を実行します。
The basic idea is to set rank equal to the count of user
associations then start at root:
基本的な考え方は、ランクをユーザーの関連付けの数と等しく設定してから、ルートから開始することです。
- Calculate Level Fairshare for the subtree's children
サブツリーの子のレベルフェアシェアを計算します - Sort children of the subtree
サブツリーの子を並べ替える - Visit the children in descending order
降順で子供たちを訪ねる - If user, assign a final fairshare factor similar to
(rank-- / user_assoc_count)
ユーザーの場合、(rank-- / user_assoc_count)のような最終的なフェアシェア係数を割り当てます - If account, descend to account
アカウントの場合は、アカウントに降ります
Level Fairshare Calculation
The Level Fairshare equation is described below.
レベルフェアシェアの式を以下に説明します。
Under-served associations
will have a value greater than 1.0.
サービスが不十分なアソシエーションの値は1.0より大きくなります。
Over-served associations will have a value
between 0.0 and 1.0.
過剰にサービスされたアソシエーションの値は0.0から1.0の間です。
LF = S / U
- LF
- is the association's Level Fairshare
協会のレベルフェアシェアです - S
- also known as Shares Norm, S is the association's assigned shares
normalized to the shares assigned to itself and its siblings:
シェアノルムとも呼ばれるSは、アソシエーションに割り当てられたシェアであり、それ自体とその兄弟に割り当てられたシェアに正規化されています。
S = Srawself / Srawself+siblings
- U
- also known as Effective Usage, U is the association's usage normalized to
the account's usage:
有効使用量とも呼ばれるUは、アカウントの使用量に正規化されたアソシエーションの使用量です。
U = Urawself / Urawself+siblings
U and S are in the range 0.0 .. 1.0
UとSは0.0..1.0の範囲にあります。
LF is in the
range 0.0 .. infinity
.
LFは0.0 ..無限大の範囲にあります。
Ties
Ties are handled as follows:
ネクタイは次のように処理されます。
- Sibling users with the same Level Fairshare receive the same rank
同じレベルのフェアシェアを持つ兄弟ユーザーは同じランクを受け取ります - A user with the same Level Fairshare as a sibling account will receive the
same rank as its highest ranked user
兄弟アカウントと同じレベルのフェアシェアを持つユーザーは、最高ランクのユーザーと同じランクを受け取ります - Sibling accounts with the same Level Fairshare have their children lists
merged before descending
同じレベルのフェアシェアを持つ兄弟アカウントでは、子リストがマージされてから降順になります
sshare
sshare was modified to show the Level Fairshare value as Level FS
when
the -l
(long) parameter is specified.
-l(long)パラメーターが指定されている場合、レベルFairshare値をレベルFSとして表示するようにsshareが変更されました。
The field shows the value for each
association, thus allowing users to see the results of the fairshare
calculation at each level.
このフィールドには各関連付けの値が表示されるため、ユーザーは各レベルでのフェアシェア計算の結果を確認できます。
Note: Norm Usage is not used by Fair Tree but is still displayed.
注:標準使用法はフェアツリーでは使用されませんが、引き続き表示されます。
Configuration
The following slurm.conf (SLURM_CONFIG_FILE) parameters are used to
configure the Fair Tree algorithm.
次のslurm.conf(SLURM_CONFIG_FILE)パラメーターは、フェアツリーアルゴリズムを構成するために使用されます。
See slurm.conf(5) man page for more
details.
詳細については、slurm.conf(5)のマニュアルページを参照してください。
- PriorityType
- Set this value to "priority/multifactor".
この値を「priority / multifactor」に設定します。
The default value for this variable is "priority/basic" which enables simple FIFO scheduling.
この変数のデフォルト値は「priority / basic」で、単純なFIFOスケジューリングが可能です。 - PriorityCalcPeriod
- PriorityCalcPeriod is the frequency in minutes that job half-life decay
and Fair Tree calculations are performed.
PriorityCalcPeriodは、ジョブの半減期の減衰とフェアツリーの計算が実行される分単位の頻度です。
Important Notes
- As the Fair Tree algorithm ranks all users, active or not, the
administrator must carefully consider how to apply other priority weights
in the priority/multifactor plugin.
Fair Treeアルゴリズムは、アクティブかどうかに関係なくすべてのユーザーをランク付けするため、管理者は、priority / multifactorプラグインで他の優先度の重みを適用する方法を慎重に検討する必要があります。
The PriorityWeightFairshare can be usefully set to a much smaller value than usual, possibly as low as 1 or 2 times the number of user associations.
PriorityWeightFairshareは、通常よりもはるかに小さい値に設定すると便利です。おそらく、ユーザーの関連付けの数の1倍または2倍に設定できます。
- Fair Tree requires the Slurm Accounting
Database to provide usage information and the assigned shares values.
Fair Treeでは、Slurmアカウンティングデータベースが使用情報と割り当てられた共有値を提供する必要があります。
- scontrol reconfigure does not cause the Fair Tree algorithm to
run immediately, even if switching from a different algorithm.
scontrol reconfigureは、別のアルゴリズムから切り替えた場合でも、FairTreeアルゴリズムをすぐに実行しません。
You may have to wait until the next iteration as defined by PriorityCalcPeriod.
PriorityCalcPeriodで定義されているように、次の反復まで待たなければならない場合があります。
Last modified 16 Jan 2019