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