Sharing Consumable Resources

CPU Management

(Disclaimer: In this "CPU Management" section, the term "consumable resource" does not include memory.
(免責事項:この「CPU管理」セクションでは、「消耗品リソース」という用語にはメモリは含まれていません。
The management of memory as a consumable resource is discussed in its own section below.)
消費可能なリソースとしてのメモリの管理については、以下の独自のセクションで説明します。)

The per-partition OverSubscribe setting applies to the entity being selected for scheduling:
パーティションごとのOverSubscribe設定は、スケジューリング用に選択されているエンティティに適用されます。

  • When the default select/linear plugin is enabled, the per-partition OverSubscribe setting controls whether or not the nodes are shared among jobs.
    デフォルトのselect / linearプラグインが有効になっている場合、パーティションごとのOverSubscribe設定は、ノードがジョブ間で共有されるかどうかを制御します。

  • When the select/cons_res plugin is enabled, the per-partition OverSubscribe setting controls whether or not the configured consumable resources are shared among jobs.
    select / cons_resプラグインが有効になっている場合、パーティションごとのOverSubscribe設定は、構成された消耗品リソースをジョブ間で共有するかどうかを制御します。
    When a consumable resource such as a core, socket, or CPU is shared, it means that more than one job can be assigned to it.
    コア、ソケット、CPUなどの消費可能なリソースが共有されている場合、複数のジョブを割り当てることができることを意味します。

The following table describes this new functionality in more detail:
次の表で、この新機能について詳しく説明します。

Selection Setting Per-partition OverSubscribe Setting Resulting Behavior
SelectType=select/linear OverSubscribe=NO Whole nodes are allocated to jobs.
ノード全体がジョブに割り当てられます。
No node will run more than one job per partition/queue.
パーティション/キューごとに複数のジョブを実行するノードはありません。
OverSubscribe=YES By default same as OverSubscribe=NO.
デフォルトでは、OverSubscribe = NOと同じです。
Nodes allocated to a job may be shared with other jobs if each job allows sharing via the srun --oversubscribe option.
各ジョブでsrun--oversubscribeオプションを介した共有が許可されている場合、ジョブに割り当てられたノードを他のジョブと共有できます。
OverSubscribe=FORCE Each whole node can be allocated to multiple jobs up to the count specified per partition/queue (default 4 jobs per node)
各ノード全体は、パーティション/キューごとに指定された数まで複数のジョブに割り当てることができます(デフォルトではノードごとに4つのジョブ)
SelectType=select/cons_res
Plus one of the following:
SelectTypeParameters=CR_Core
SelectTypeParameters=CR_Core_Memory
OverSubscribe=NO Cores are allocated to jobs.
コアはジョブに割り当てられます。
No core will run more than one job per partition/queue.
パーティション/キューごとに複数のジョブを実行するコアはありません。
OverSubscribe=YES By default same as OverSubscribe=NO.
デフォルトでは、OverSubscribe = NOと同じです。
Cores allocated to a job may be shared with other jobs if each job allows sharing via the srun --oversubscribe option.
各ジョブでsrun--oversubscribeオプションを介した共有が許可されている場合、ジョブに割り当てられたコアを他のジョブと共有できます。
OverSubscribe=FORCE Each core can be allocated to multiple jobs up to the count specified per partition/queue (default 4 jobs per core).
各コアは、パーティション/キューごとに指定された数まで複数のジョブに割り当てることができます(デフォルトではコアごとに4つのジョブ)。
SelectType=select/cons_res
Plus one of the following:
SelectTypeParameters=CR_CPU
SelectTypeParameters=CR_CPU_Memory
OverSubscribe=NO CPUs are allocated to jobs.
CPUはジョブに割り当てられます。
No CPU will run more than one job per partition/queue.
CPUは、パーティション/キューごとに複数のジョブを実行しません。
OverSubscribe=YES By default same as OverSubscribe=NO.
デフォルトでは、OverSubscribe = NOと同じです。
CPUs allocated to a job may be shared with other jobs if each job allows sharing via the srun --oversubscribe option.
各ジョブでsrun--oversubscribeオプションを介した共有が許可されている場合、ジョブに割り当てられたCPUを他のジョブと共有できます。
OverSubscribe=FORCE Each CPU can be allocated to multiple jobs up to the count specified per partition/queue (default 4 jobs per CPU).
各CPUは、パーティション/キューごとに指定された数まで複数のジョブに割り当てることができます(デフォルトではCPUごとに4ジョブ)。
SelectType=select/cons_res
Plus one of the following:
SelectTypeParameters=CR_Socket
SelectTypeParameters=CR_Socket_Memory
OverSubscribe=NO Sockets are allocated to jobs.
ソケットはジョブに割り当てられます。
No Socket will run more than one job per partition/queue.
パーティション/キューごとに複数のジョブを実行するソケットはありません。
OverSubscribe=YES By default same as OverSubscribe=NO.
デフォルトでは、OverSubscribe = NOと同じです。
Sockets allocated to a job may be shared with other jobs if each job allows sharing via the srun --oversubscribe option.
各ジョブでsrun--oversubscribeオプションを介した共有が許可されている場合、ジョブに割り当てられたソケットを他のジョブと共有できます。
OverSubscribe=FORCE Each socket can be allocated to multiple jobs up to the count specified per partition/queue (default 4 jobs per socket).
各ソケットは、パーティション/キューごとに指定された数まで複数のジョブに割り当てることができます(デフォルトではソケットごとに4つのジョブ)。

When OverSubscribe=FORCE is configured, the consumable resources are scheduled for jobs using a least-loaded algorithm.
OverSubscribe = FORCEが構成されている場合、消費可能なリソースは、最小負荷のアルゴリズムを使用してジョブにスケジュールされます。
Thus, idle CPUs|cores|sockets will be allocated to a job before busy ones, and CPUs|cores|sockets running one job will be allocated to a job before ones running two or more jobs.
したがって、アイドル状態のCPU |コア|ソケットはビジー状態のジョブの前にジョブに割り当てられ、1つのジョブを実行しているCPU |コア|ソケットは、2つ以上のジョブを実行しているジョブの前にジョブに割り当てられます。
This is the same approach that the select/linear plugin uses when allocating "shared" nodes.
これは、select / linearプラグインが「共有」ノードを割り当てるときに使用するのと同じアプローチです。

Note that the granularity of the "least-loaded" algorithm is what distinguishes the two selection plugins (cons_res and linear) when OverSubscribe=FORCE is configured.
OverSubscribe = FORCEが構成されている場合、「最小ロード」アルゴリズムの粒度が2つの選択プラグイン(cons_resとlinear)を区別することに注意してください。
With the select/cons_res plugin enabled, the CPUs of a node are not overcommitted until all of the rest of the CPUs are overcommitted on the other nodes.
select / cons_resプラグインを有効にすると、ノードのCPUは、残りのすべてのCPUが他のノードでオーバーコミットされるまでオーバーコミットされません。
Thus if one job allocates half of the CPUs on a node and then a second job is submitted that requires more than half of the CPUs, the select/cons_res plugin will attempt to place this new job on other busy nodes that have more than half of the CPUs available for use.
したがって、1つのジョブがCPUの半分をノードに割り当て、次にCPUの半分以上を必要とする2番目のジョブが送信された場合、select / cons_resプラグインは、この新しいジョブを、半分以上のCPUを持つ他のビジーノードに配置しようとします。使用可能なCPU。
The select/linear plugin simply counts jobs on nodes, and does not track the CPU usage on each node.
select / linearプラグインは、ノード上のジョブをカウントするだけで、各ノードのCPU使用率を追跡しません。

This new sharing functionality in the select/cons_res plugin also supports the new OverSubscribe=FORCE:<num> syntax.
select / cons_resプラグインのこの新しい共有機能は、新しいOverSubscribe = FORCE:<num>構文もサポートします。
If OverSubscribe=FORCE:3 is configured with select/cons_res and CR_Core or CR_Core_Memory, then the select/cons_res plugin will run up to 3 jobs on each core of each node in the partition.
OverSubscribe = FORCE:3がselect / cons_resとCR_CoreまたはCR_Core_Memoryで構成されている場合、select / cons_resプラグインはパーティション内の各ノードの各コアで最大3つのジョブを実行します。
If CR_Socket or CR_Socket_Memory is configured, then the select/cons_res plugin will run up to 3 jobs on each socket of each node in the partition.
CR_SocketまたはCR_Socket_Memoryが構成されている場合、select / cons_resプラグインは、パーティション内の各ノードの各ソケットで最大3つのジョブを実行します。

Nodes in Multiple Partitions

Slurm has supported configuring nodes in more than one partition since version 0.7.0.
Slurmは、バージョン0.7.0以降、複数のパーティションでのノードの構成をサポートしています。
The following table describes how nodes configured in two partitions with different OverSubscribe settings will be allocated to jobs.
次の表は、OverSubscribe設定が異なる2つのパーティションで構成されたノードがジョブに割り当てられる方法を示しています。
Note that "shared" jobs are jobs that are submitted to partitions configured with OverSubscribe=FORCE or with OverSubscribe=YES and the job requested sharing with the srun --oversubscribe option.
「共有」ジョブは、OverSubscribe = FORCEまたはOverSubscribe = YESで構成されたパーティションに送信され、srun--oversubscribeオプションを使用して共有を要求されたジョブであることに注意してください。
Conversely, "non-shared" jobs are jobs that are submitted to partitions configured with OverSubscribe=NO or OverSubscribe=YES and the job did not request sharable resources.
逆に、「非共有」ジョブは、OverSubscribe = NOまたはOverSubscribe = YESで構成されたパーティションに送信され、共有可能なリソースを要求しなかったジョブです。

 First job "sharable"First job not "sharable"
Second job "sharable"Both jobs can run on the same nodes and may share resources
両方のジョブは同じノードで実行でき、リソースを共有できます
Jobs do not run on the same nodes
ジョブは同じノードで実行されません
Second job not "sharable"Jobs do not run on the same nodes
ジョブは同じノードで実行されません
Jobs can run on the same nodes but will not share resources
ジョブは同じノードで実行できますが、リソースを共有しません

The next table contains several scenarios with the select/cons_res plugin enabled to further clarify how a node is used when it is configured in more than one partition and the partitions have different "OverSubscribe" policies:
次の表には、select / cons_resプラグインを有効にして、ノードが複数のパーティションで構成され、パーティションに異なる「OverSubscribe」ポリシーがある場合のノードの使用方法をさらに明確にするいくつかのシナリオが含まれています。

Slurm configuration Resulting Behavior
Two OverSubscribe=NO partitions assigned the same set of nodes
同じノードのセットが割り当てられた2つのOverSubscribe = NOパーティション
Jobs from either partition will be assigned to all available consumable resources.
いずれかのパーティションのジョブは、使用可能なすべての消耗品リソースに割り当てられます。
No consumable resource will be shared.
消費可能なリソースは共有されません。
One node could have 2 jobs running on it, and each job could be from a different partition.
1つのノードで2つのジョブを実行し、各ジョブを異なるパーティションから取得することができます。
Two partitions assigned the same set of nodes: one partition is OverSubscribe=FORCE, and the other is OverSubscribe=NO
同じノードのセットが割り当てられた2つのパーティション:1つのパーティションはOverSubscribe = FORCEで、もう1つのパーティションはOverSubscribe = NOです。
A node will only run jobs from one partition at a time.
ノードは、一度に1つのパーティションからのみジョブを実行します。
If a node is running jobs from the OverSubscribe=NO partition, then none of its consumable resources will be shared.
ノードがOverSubscribe = NOパーティションからジョブを実行している場合、その消費可能なリソースは共有されません。
If a node is running jobs from the OverSubscribe=FORCE partition, then its consumable resources can be shared.
ノードがOverSubscribe = FORCEパーティションからジョブを実行している場合、その消費可能なリソースを共有できます。
Two OverSubscribe=FORCE partitions assigned the same set of nodes
同じノードのセットが割り当てられた2つのOverSubscribe = FORCEパーティション
Jobs from either partition will be assigned consumable resources.
いずれかのパーティションのジョブには、消費可能なリソースが割り当てられます。
All consumable resources can be shared.
すべての消費可能なリソースを共有できます。
One node could have 2 jobs running on it, and each job could be from a different partition.
1つのノードで2つのジョブを実行し、各ジョブを異なるパーティションから取得することができます。
Two partitions assigned the same set of nodes: one partition is OverSubscribe=FORCE:3, and the other is OverSubscribe=FORCE:5
同じノードのセットが割り当てられた2つのパーティション:1つのパーティションはOverSubscribe = FORCE:3で、もう1つのパーティションはOverSubscribe = FORCE:5です。
Generally the same behavior as above.
通常、上記と同じ動作です。
However no consumable resource will ever run more than 3 jobs from the first partition, and no consumable resource will ever run more than 5 jobs from the second partition.
ただし、消費可能なリソースが最初のパーティションから3つを超えるジョブを実行することはなく、消費可能なリソースが2番目のパーティションから5つを超えるジョブを実行することもありません。
A consumable resource could have up to 8 jobs running on it at one time.
消耗品リソースでは、一度に最大8つのジョブを実行できます。

Note that the "mixed shared setting" configuration (row #2 above) introduces the possibility of starvation between jobs in each partition.
「混合共有設定」構成(上記の行#2)では、各パーティションのジョブ間で飢餓が発生する可能性があることに注意してください。
If a set of nodes are running jobs from the OverSubscribe=NO partition, then these nodes will continue to only be available to jobs from that partition, even if jobs submitted to the OverSubscribe=FORCE partition have a higher priority.
ノードのセットがOverSubscribe = NOパーティションからのジョブを実行している場合、OverSubscribe = FORCEパーティションにサブミットされたジョブの優先度が高くても、これらのノードは引き続きそのパーティションのジョブでのみ使用できます。
This works in reverse also, and in fact it's easier for jobs from the OverSubscribe=FORCE partition to hold onto the nodes longer because the consumable resource "sharing" provides more resource availability for new jobs to begin running "on top of" the existing jobs.
これは逆にも機能します。実際、消費可能なリソースの「共有」により、新しいジョブが既存のジョブの「上」で実行を開始するためのリソースの可用性が向上するため、OverSubscribe = FORCEパーティションのジョブがノードをより長く保持しやすくなります。 。
This happens with the select/linear plugin also, so it's not specific to the select/cons_res plugin.
これはselect / linearプラグインでも発生するため、select / cons_resプラグインに固有のものではありません。

Memory Management

The management of memory as a consumable resource remains unchanged and can be used to prevent oversubscription of memory, which would result in having memory pages swapped out and severely degraded performance.
消費可能なリソースとしてのメモリの管理は変更されておらず、メモリのオーバーサブスクリプションを防ぐために使用できます。これにより、メモリページがスワップアウトされ、パフォーマンスが大幅に低下します。

Selection Setting Resulting Behavior
SelectType=select/linear Memory allocation is not tracked.
メモリ割り当ては追跡されません。
Jobs are allocated to nodes without considering if there is enough free memory.
十分な空きメモリがあるかどうかを考慮せずに、ジョブがノードに割り当てられます。
Swapping could occur!
スワッピングが発生する可能性があります!
SelectType=select/linear plus
SelectTypeParameters=CR_Memory
Memory allocation is tracked.
メモリ割り当てが追跡されます。
Nodes that do not have enough available memory to meet the jobs memory requirement will not be allocated to the job.
ジョブのメモリ要件を満たすのに十分な使用可能なメモリがないノードは、ジョブに割り当てられません。
SelectType=select/cons_res
Plus one of the following:
SelectTypeParameters=CR_Core
SelectTypeParameters=CR_CPU
SelectTypeParameters=CR_Socket
Memory allocation is not tracked.
メモリ割り当ては追跡されません。
Jobs are allocated to consumable resources without considering if there is enough free memory.
十分な空きメモリがあるかどうかを考慮せずに、ジョブが消費可能なリソースに割り当てられます。
Swapping could occur!
スワッピングが発生する可能性があります!
SelectType=select/cons_res
Plus one of the following:
SelectTypeParameters=CR_Memory
SelectTypeParameters=CR_Core_Memory
SelectTypeParameters=CR_CPU_Memory
SelectTypeParameters=CR_Socket_Memory
Memory allocation for all jobs are tracked.
すべてのジョブのメモリ割り当てが追跡されます。
Nodes that do not have enough available memory to meet the jobs memory requirement will not be allocated to the job.
ジョブのメモリ要件を満たすのに十分な使用可能なメモリがないノードは、ジョブに割り当てられません。

Users can specify their job's memory requirements one of two ways.
ユーザーは、2つの方法のいずれかでジョブのメモリ要件を指定できます。
The srun --mem=<num> option can be used to specify the jobs memory requirement on a per allocated node basis.
srun --mem = <num>オプションを使用して、割り当てられたノードごとにジョブのメモリ要件を指定できます。
This option is recommended for use with the select/linear plugin, which allocates whole nodes to jobs.
このオプションは、ノード全体をジョブに割り当てるselect / linearプラグインでの使用をお勧めします。
The srun --mem-per-cpu=<num> option can be used to specify the jobs memory requirement on a per allocated CPU basis.
srun --mem-per-cpu = <num>オプションを使用して、割り当てられたCPUごとにジョブのメモリ要件を指定できます。
This is recommended for use with the select/cons_res plugin which can allocate individual CPUs to jobs.
これは、個々のCPUをジョブに割り当てることができるselect / cons_resプラグインで使用することをお勧めします。

Default and maximum values for memory on a per node or per CPU basis can be configured by the system administrator using the following slurm.conf options: DefMemPerCPU, DefMemPerNode, MaxMemPerCPU and MaxMemPerNode.
ノードごとまたはCPUごとのメモリのデフォルト値と最大値は、システム管理者が次のslurm.confオプションを使用して構成できます:DefMemPerCPU、DefMemPerNode、MaxMemPerCPU、およびMaxMemPerNode。
Users can use the --mem or --mem-per-cpu option at job submission time to override the default value, but they cannot exceed the maximum value.
ユーザーは、ジョブの送信時に--memまたは--mem-per-cpuオプションを使用してデフォルト値を上書きできますが、最大値を超えることはできません。

Enforcement of a jobs memory allocation is performed by setting the "maximum data segment size" and the "maximum virtual memory size" system limits to the appropriate values before launching the tasks.
ジョブのメモリ割り当ての実施は、タスクを起動する前に、「最大データセグメントサイズ」と「最大仮想メモリサイズ」のシステム制限を適切な値に設定することによって実行されます。
Enforcement is also managed by the accounting plugin, which periodically gathers data about running jobs.
エンフォースメントは、実行中のジョブに関するデータを定期的に収集するアカウンティングプラグインによっても管理されます。
Set JobAcctGather and JobAcctFrequency to values suitable for your system.
JobAcctGatherとJobAcctFrequencyをシステムに適した値に設定します。

Last modified 31 March 2016