Core Specialization

Core specialization is a feature designed to isolate system overhead (system interrupts, etc.) to designated cores on a compute node.
コアの特殊化は、システムのオーバーヘッド(システム割り込みなど)を計算ノード上の指定されたコアに分離するように設計された機能です。
This can reduce applications interrupts ranks to improve completion time.
これにより、アプリケーションの割り込みランクを減らして、完了時間を改善できます。
The job will be charged for all allocated cores, but will not be able to directly use the specialized cores.
ジョブは割り当てられたすべてのコアに対して課金されますが、特殊なコアを直接使用することはできません。

Command Options

All job allocation commands (salloc, sbatch and srun) accept the -S or --core-spec option with a core count value argument (e.g. "-S 1" or "--core-spec=2").
すべてのジョブ割り当てコマンド(salloc、sbatch、およびsrun)は、コアカウント値引数(「-S1」または「--core-spec = 2」など)を指定した-Sまたは--core-specオプションを受け入れます。
The count identifies the number of cores to be reserved for system overhead on each allocated compute node.
カウントは、割り当てられた各計算ノードのシステムオーバーヘッド用に予約されるコアの数を識別します。
Each job's core specialization count can be viewed using the scontrol, sview or squeue command.
各ジョブのコアスペシャライゼーションカウントは、scontrol、sview、またはsqueueコマンドを使用して表示できます。
Specification of a core specialization count for a job step is ignored (i.e. for the srun command within a job allocation created using the salloc or sbatch command).
ジョブステップのコア特殊化カウントの指定は無視されます(つまり、sallocまたはsbatchコマンドを使用して作成されたジョブ割り当て内のsrunコマンドの場合)。
Use the squeue command with the "%X" format option to see the count (it is not reported in the default output format).
「%X」形式オプションを指定してsqueueコマンドを使用して、カウントを確認します(デフォルトの出力形式では報告されません)。
The scontrol and sview commands can also be used to modify the count for pending jobs.
scontrolコマンドとsviewコマンドを使用して、保留中のジョブの数を変更することもできます。

Explicitly setting a job's specialized core value implicitly sets its --exclusive option, reserving entire nodes for the job, however the number of CPUs available for the job's steps will not exceed that explicitly requested by the job.
ジョブの特殊なコア値を明示的に設定すると、その--exclusiveオプションが暗黙的に設定され、ノード全体がジョブ用に予約されますが、ジョブのステップで使用可能なCPUの数は、ジョブによって明示的に要求された数を超えることはありません。
For example "salloc -n1 --core-spec=1 bash" will result in one entire node being reserved for the job, but only one CPU will be available for subsequent job steps.
たとえば、「salloc -n1 --core-spec = 1 bash」では、ノード全体が1つのジョブ用に予約されますが、後続のジョブステップで使用できるCPUは1つだけです。
The remaining CPUs on the node (at least one core because of "--core-spec=1") will only be available for system use.
ノード上の残りのCPU( "--core-spec = 1"のために少なくとも1つのコア)は、システムでのみ使用できます。
The job will be charged for all CPUs on the node and the job's NumCPUs value reported by the scontrol, sview and squeue commands will reflect all CPUS on all allocated nodes as will the job's accounting.
ジョブはノード上のすべてのCPUに対して課金され、scontrol、sview、およびsqueueコマンドによって報告されるジョブのNumCPUs値は、ジョブのアカウンティングと同様に、割り当てられたすべてのノード上のすべてのCPUを反映します。

Core Selection

The specific resources to be used for specialization may be identified using the CPUSpecList configuration parameter associated with each node in the slurm.conf file.
特殊化に使用される特定のリソースは、slurm.confファイルの各ノードに関連付けられたCPUSpecList構成パラメーターを使用して識別できます。
Note that the core_spec/cray_aries does not currently support identification of specific cores, so that plugin should not be used in conjunction with the CPUSpecList configuration parameter, even on Cray systems.
core_spec / cray_ariesは現在、特定のコアの識別をサポートしていないため、Crayシステムであっても、プラグインをCPUSpecList構成パラメーターと組み合わせて使用​​しないでください。
If CoreSpecCount is configured, but not CPUSpecList, the cores selected for specialization will follow the assignment algorithm described below.
CoreSpecCountが構成されているが、CPUSpecListが構成されていない場合、特殊化のために選択されたコアは、以下で説明する割り当てアルゴリズムに従います。
The first core selected will be the highest numbered core on the highest numbered socket.
最初に選択されるコアは、最大番号のソケットで最大番号のコアになります。
Subsequent cores selected will be the highest numbered core on lower numbered sockets.
選択される後続のコアは、番号の小さいソケットで番号が最も大きいコアになります。
If additional cores are required, they will come from the next highest numbered cores on each socket.
追加のコアが必要な場合は、各ソケットで次に大きい番号のコアから取得されます。
By way of example, consider a node with two sockets, each with four cores.
例として、それぞれが4つのコアを持つ2つのソケットを持つノードについて考えてみます。
The specialized cores will be selected in the following order:
専用コアは次の順序で選択されます。

  1. socket: 1 core: 3
  2. socket: 0 core: 3
  3. socket: 1 core: 2
  4. socket: 0 core: 2
  5. socket: 1 core: 1
  6. socket: 0 core: 1
  7. socket: 1 core: 0
  8. socket: 0 core: 0

Slurm can be configured to specialize the last, rather than the first cores by configuring SchedulerParameters=spec_cores_first.
SchedulerParameters = spec_cores_firstを構成することにより、最初のコアではなく最後のコアを特殊化するようにSlurmを構成できます。
In that case, the first core selected will be the lowest numbered core on the lowest numbered socket.
その場合、最初に選択されるコアは、最も小さい番号のソケットで最も小さい番号のコアになります。
Subsequent cores selected will be the lowest numbered core on higher numbered sockets.
選択される後続のコアは、番号の大きいソケットで番号が最も小さいコアになります。
If additional cores are required, they well come from the next lowest numbered cores on each socket.
追加のコアが必要な場合は、各ソケットで次に小さい番号のコアから取得します。

Note that core specialization reservation may impact the use of some job allocation request options, especially --cores-per-socket.
コアスペシャライゼーションの予約は、一部のジョブ割り当て要求オプション、特に--cores-per-socketの使用に影響を与える可能性があることに注意してください。

System Configuration

There are two fundamentally different mechanisms for core specialization; one for Cray systems and a different model for other systems.
コアスペシャライゼーションには、根本的に異なる2つのメカニズムがあります。1つはCrayシステム用で、もう1つは他のシステム用です。

For Cray systems, configure SelectType=select/cray_aries and CoreSpecPlugin=core_spec/cray_aries.
Crayシステムの場合、SelectType = select / cray_ariesおよびCoreSpecPlugin = core_spec / cray_ariesを構成します。
By default, no resources will be reserved for system use.
デフォルトでは、システムで使用するためにリソースが予約されることはありません。
The user must explicitly set a specialized core count as described above.
ユーザーは、上記のように特殊なコア数を明示的に設定する必要があります。

For all other systems, configure SelectType=select/cons_res, CoreSpecPlugin=core_spec/none and TaskPlugin=task/cgroup.
他のすべてのシステムの場合は、SelectType = select / cons_res、CoreSpecPlugin = core_spec / none、およびTaskPlugin = task / cgroupを構成します。
In addition, specialized resources should be configured in slurm.conf on the node specification line using the CoreSpecCount or CPUSpecList option to identify the CPUs to reserve.
さらに、CoreSpecCountまたはCPUSpecListオプションを使用して、ノード仕様行のslurm.confで専用リソースを構成し、予約するCPUを特定する必要があります。
The MemSpecLimit option can be used to reserve memory.
MemSpecLimitオプションを使用して、メモリを予約できます。
These resources will be reserved using Linux cgroups.
これらのリソースは、Linuxcgroupを使用して予約されます。
Users wanting a different number of specialized cores should use the --core-spec option as described above.
異なる数の特殊なコアが必要なユーザーは、上記のように--core-specオプションを使用する必要があります。

A job's core specialization option will be silently cleared on other configurations.
ジョブのコアスペシャライゼーションオプションは、他の構成ではサイレントにクリアされます。
In addition, each compute node's core count must be configured or the CPUs count must be configured to the node's core count.
さらに、各計算ノードのコア数を構成するか、CPU数をノードのコア数に合わせて構成する必要があります。
If the core count is not configured and the CPUs value is configured to the count of hyperthreads, then hyperthreads rather than cores will be reserved for system use.
コア数が構成されておらず、CPU値がハイパースレッドの数に構成されている場合、コアではなくハイパースレッドがシステムで使用するために予約されます。

If users are to be granted the right to control the number of specialized cores for their job, the configuration parameter AllowSpecResourceUsage must be set to a value of 1.
ユーザーにジョブの専用コアの数を制御する権限を付与する場合は、構成パラメーターAllowSpecResourceUsageを値1に設定する必要があります。

Last modified 6 September 2018