リソース割り当て規則では、必ず、使用可能なリソースの最大値を定義します。だいたいの場合、これらは静的であり、一致するすべてのフィルタスコープに対して同じです。いくつかの異なる規則を、異なるスコープに適用することもできますが、それらの規則はほぼ同じです。この場合は、規則を複製する代わりに、動的制限を定義できます。
動的制限では、代数式を使用して規則制限値を導出します。代数式でコンプレックス属性を参照し、その値を使用して制限値を計算することができます。
次は、動的制限の使用例です。ユーザーは、すべての Linux ホストで 1 CPU 当たり 5 つのスロットの使用が許可されます。
limit hosts {@linux_hosts} to slots=$num_proc*5 |
num_proc の値は、ホスト上のプロセッサ数です。制限は式 $num_proc*5 で求められ、ホストによって異なることがあります。上記の例を展開すると、たとえば次のような制限が考えられます。
CPU 2 つのホストの場合、ユーザーはジョブの実行に 10 個のスロットを使用できます。
CPU 1 つのホストの場合、ユーザーはジョブの実行に 5 個のスロットを使用できます。
num_proc の代わりに、負荷値あるいは消費可能リソースのいずれかとしてホストが認識するほかのコンプレックス属性をすべて使用することができます。