Intel Knights Landing (KNL) User and Administrator Guide
Overview
This document describes the unique features of Slurm on the computers with
the Intel Knights Landing processor.
You should be familiar with the Slurm's mode of operation on Linux clusters
before studying the relatively few differences in Intel KNL system operation
described in this document.
このドキュメントでは、Intel Knights Landingプロセッサーを搭載したコンピューター上のSlurmの独自の機能について説明します。このドキュメントで説明されているインテルKNLシステムの操作における比較的少数の違いを学ぶ前に、LinuxクラスターでのSlurmの操作モードに精通している必要があります。
User Tools
The desired NUMA and MCDRAM modes for a KNL processor should be specified
using the -C or --constraints option of Slurm's job submission commands: salloc,
sbatch, and srun. Currently available NUMA and MCDRAM modes are shown in the
table below. Each node's available and current NUMA and MCDRAM modes are
visible in the "available features" and "active features" fields respectively,
which may be seen using the scontrol, sinfo, or sview commands.
Note that a node may need to be rebooted to get the desired NUMA and MCDRAM
modes and nodes may only be rebooted when they contain no running jobs
(i.e. sufficient resources may be available to run a pending job, but until
the node is idle and can be rebooted, the pending job may not be allocated
resources). Also note that the job will be charged for resources from the time
of resource allocation, which may include time to reboot a node into the
desired NUMA and MCDRAM configuration.
KNLプロセッサーに必要なNUMAおよびMCDRAMモードは、Slurmのジョブ送信コマンドのsalloc、sbatch、およびsrunの-Cまたは--constraintsオプションを使用して指定する必要があります。現在利用可能なNUMAおよびMCDRAMモードを以下の表に示します。各ノードの使用可能な現在のNUMAモードとMCDRAMモードは、それぞれ「使用可能な機能」フィールドと「アクティブな機能」フィールドに表示され、scontrol、sinfo、またはsviewコマンドを使用して表示できます。目的のNUMAモードとMCDRAMモードを取得するためにノードを再起動する必要がある場合があることに注意してください。ノードは、実行中のジョブが含まれていない場合にのみ再起動される場合があります(つまり、保留中のジョブを実行するのに十分なリソースが利用できる場合がありますが、ノードがアイドル状態になり、再起動すると、保留中のジョブにリソースが割り当てられない場合があります)。
Slurm supports a very rich set of options for the node constraint options
(exclusive OR, node counts for each constraint, etc.).
See the man pages for the salloc, sbatch and srun commands for more information
about the constraint syntax.
Jobs may specify their desired NUMA and/or MCDRAM configuration. If no
NUMA and/or MCDRAM configuration is specified, then a node with any possible
value for that configuration will be used.
Slurmはノード制約オプションの非常に豊富なオプションセットをサポートしています(排他的OR、各制約のノード数など)。制約構文の詳細については、salloc、sbatch、およびsrunコマンドのマニュアルページを参照してください。ジョブは、希望するNUMAまたはMCDRAM構成、あるいはその両方を指定できます。NUMAまたはMCDRAM構成、あるいはその両方が指定されていない場合は、その構成に可能な値を持つノードが使用されます。
Type | Name | Description |
---|---|---|
MCDRAM | cache | All of MCDRAM to be used as cache キャッシュとして使用されるすべてのMCDRAM |
MCDRAM | equal | MCDRAM to be used partly as cache and partly combined with primary memory 一部をキャッシュとして使用し、一部をプライマリメモリと組み合わせるMCDRAM |
MCDRAM | flat | MCDRAM to be combined with primary memory into a "flat" memory space MCDRAMをプライマリメモリと組み合わせて「フラットな」メモリ空間にする |
NUMA | a2a | All to all |
NUMA | hemi | Hemisphere |
NUMA | snc2 | Sub-NUMA cluster 2 |
NUMA | snc4 | Sub-NUMA cluster 4 (NOTE) |
NUMA | quad | Quadrant (NOTE) |
Jobs requiring some or all of the KNL high bandwidth memory (HBM) should
explicitly request that memory using Slurm's Generic RESource (GRES) options.
The HBM will always be known by Slurm GRES name of "hbm".
Examples below demonstrate use of HBM.
KNL高帯域幅メモリ(HBM)の一部またはすべてを必要とするジョブは、SlurmのGeneric RESource(GRES)オプションを使用してそのメモリを明示的に要求する必要があります。HBMは常に「hbm」というSlurm GRES名で認識されます。以下の例は、HBMの使用法を示しています。
Sorting of the free cache pages at step startup using Intel's zonesort
module can be configred as the default for all steps using the
"LaunchParameters=mem_sort" option in the slurm.conf file.
Individual job steps can enable or disable sorting using the "--mem-bind=sort"
or "--mem-bind=nosort" command line options for srun.
Sorting will be performed only for the NUMA nodes allocated to the job step.
Intelのzonesortモジュールを使用したステップ起動時の空きキャッシュページのソートは、slurm.confファイルの "LaunchParameters = mem_sort"オプションを使用して、すべてのステップのデフォルトとして設定できます。個々のジョブステップでは、srunの「--mem-bind = sort」または「--mem-bind = nosort」コマンドラインオプションを使用して、並べ替えを有効または無効にできます。ソートは、ジョブステップに割り当てられたNUMAノードに対してのみ実行されます。
NOTE: Slurm provides limited support
for restricting use of HBM. At some point in the future, the amount of HBM
requested by the job will be compared with the total amount of HBM and number of
memory-containing NUMA nodes available on the KNL processor. The job will then
be bound to specific NUMA nodes in order to limit the total amount of HBM
available to the job, and thus reserve the remaining HBM for other jobs running
on that KNL processor.
注:Slurmは、HBMの使用を制限するための限定的なサポートを提供します。将来のある時点で、ジョブによって要求されたHBMの量は、HBMの総量およびKNLプロセッサーで使用可能なメモリーを含むNUMAノードの数と比較されます。次に、ジョブは特定のNUMAノードにバインドされ、ジョブで使用可能なHBMの合計量を制限し、残りのHBMをそのKNLプロセッサーで実行されている他のジョブ用に予約します。
NOTE: Slurm can only
support homogeneous nodes (e.g. the same number of cores per NUMA node).
KNL processors with 68 cores (a subset of KNL models) will not have
homogeneous NUMA nodes in snc4 mode, but each each NUMA node will have
either 16 or 18 cores. This will result in Slurm using the lower core count,
finding a total of 256 threads rather than 272 threads and setting the node
to a DOWN state.
注:Slurmは同種のノードのみをサポートできます(NUMAノードごとに同じ数のコアなど)。68コアのKNLプロセッサ(KNLモデルのサブセット)は、snc4モードでは同種のNUMAノードを備えていませんが、各NUMAノードは16または18コアを備えています。これにより、Slurmはより少ないコア数を使用して、272スレッドではなく合計256スレッドを見つけ、ノードをDOWN状態に設定します。
Accounting
If a node requires rebooting for a job's required configuration, the job
will be charged for the resource allocation from the time of allocation through
the lifetime of the job, including the time consumed for booting the nodes.
The job's time limit will be calculated from the time that all nodes are ready
for use.
For example, a job with a 10 minute time limit may be allocated resources at
10:00:00.
If the nodes require rebooting, they might not be available for use until
10:20:00, 20 minutes after allocation, and the job will begin execution at
that time.
The job must complete no later than 10:30:00 in order to satisfy its time limit
(10 minutes after execution actually begins).
However, the job will be charged for 30 minutes of resource use, which includes
the boot time.
ジョブの必要な構成のためにノードの再起動が必要な場合、ノードの起動に費やされた時間を含めて、ジョブは割り当てからジョブのライフタイムまでのリソース割り当てに対して課金されます。ジョブの制限時間は、すべてのノードが使用できるようになった時間から計算されます。たとえば、時間制限が10分のジョブには、10:00:00にリソースが割り当てられます。ノードの再起動が必要な場合は、割り当てから20分後の10:20:00までノードを使用できない場合があり、その時点でジョブが実行を開始します。ジョブは、時間制限(実際に実行が開始してから10分後)を満たすために、10:30:00までに完了する必要があります。ただし、ジョブは、起動時間を含む30分のリソース使用に対して課金されます。
Sample Use Cases
$ sbatch -C flat,a2a -N2 --gres=hbm:8g --exclusive my.script $ srun --constraint=hemi,cache -n36 a.out $ srun --constraint=flat --gres=hbm:2g -n36 a.out $ sinfo -o "%30N %20b %f" NODELIST ACTIVE_FEATURES AVAIL_FEATURES nid000[10-11] nid000[12-35] flat,a2a flat,a2a,snc2,hemi nid000[36-43] cache,a2a flat,equal,cache,a2a,hemi
Network Topology
Slurm will optimize performance using those resources available without
rebooting. If node rebooting is required, then it will optimize layout with
respect to network bandwidth using both nodes currently in the desired
configuration and those which can be made available after rebooting.
This can result in more nodes being rebooted than strictly needed, but will
improve application performance.
Slurmは、再起動せずに利用可能なリソースを使用してパフォーマンスを最適化します。ノードの再起動が必要な場合は、現在望ましい構成になっているノードと再起動後に利用できるようにすることができるノードの両方を使用して、ネットワーク帯域幅に関してレイアウトを最適化します。これにより、厳密に必要な数より多くのノードがリブートされる可能性がありますが、アプリケーションのパフォーマンスは向上します。
Users can specify they want all resources allocated on a specific count of
leaf switches (Dragonfly group) using Slurm's --switches option.
They can also specify how much additional time they are willing to wait for
such a configuration. If the desired configuration can not be made available
within the specified time interval, the job will be allocated nodes optimized
with respect to network bandwidth to the extent possible. On a Dragonfly
network, this means allocating resources over either single group or
distributed evenly over as many groups as possible. For example:
ユーザーは、Slurmの--switchesオプションを使用して、特定の数のリーフスイッチ(Dragonflyグループ)にすべてのリソースを割り当てることを指定できます。また、このような構成を待機する追加の時間を指定することもできます。指定した時間内に目的の構成を使用できない場合、ジョブには、可能な限りネットワーク帯域幅に関して最適化されたノードが割り当てられます。Dragonflyネットワークでは、これはリソースを単一のグループに割り当てるか、できるだけ多くのグループに均等に分散することを意味します。例えば:
srun --switches=1@10:00 N16 a.out
Note that system administrators can disable use of the --switches
option or limit the amount of time the job can be deferred using the
SchedulerParameters max-switch-wait option.
システム管理者は--switchesオプションの使用を無効にするか、SchedulerParameters max-switch-waitオプションを使用してジョブを延期できる時間を制限できることに注意してください。
Booting Problems
If node boots fail, those nodes are drained and the job is requeued so that
it can be allocated a different set of nodes. The nodes originally allocated
to the job will remain available to the job, so likely a small number of
additional nodes will be required.
ノードの起動が失敗した場合、それらのノードはドレインされ、ジョブは別のノードのセットを割り当てることができるようにキューに再登録されます。ジョブに最初に割り当てられたノードは、ジョブで引き続き使用できるため、少数の追加ノードが必要になる可能性があります。
System Administration
Four important components are required to use Slurm on an Intel KNL system.
Intel KNLシステムでSlurmを使用するには、4つの重要なコンポーネントが必要です。
- Slurm needs a mechanism to determine the node's current topology (e.g.
how many NUMA exist and which cores are associated with each NUMA). Slurm
relies upon
Portable Hardware Locality (HWLOC) for this functionality. Please install
HWLOC before building Slurm.
Slurmには、ノードの現在のトポロジー(たとえば、NUMAの数と各NUMAに関連付けられているコア)を判別するメカニズムが必要です。Slurmは、この機能をポータブルハードウェアローカリティ(HWLOC)に依存しています。Slurmをビルドする前にHWLOCをインストールしてください。 - The node features plugin manages the available and active features
information available for each KNL node.
ノード機能プラグインは、各KNLノードで利用可能なアクティブな機能情報を管理します。 - A configuration file is used to define various timeouts, default
configuration, etc. The configuration file name and contents will depend upon
the node features plugins used. See the knl.conf
man page for more information.
構成ファイルは、さまざまなタイムアウト、デフォルト構成などを定義するために使用されます。構成ファイルの名前と内容は、使用されるノード機能プラグインによって異なります。詳細については、knl.confのmanページを参照してください。 - A mechanism is required to boot nodes in the desired configuration. This
mechanism must be integrated with existing Slurm infrastructure for
rebooting nodes on user request (--reboot) plus
(for Cray systems only)
power saving (powering down idle nodes and
restarting them on demand).
目的の構成でノードを起動するメカニズムが必要です。このメカニズムは、ユーザーの要求に応じてノードを再起動するための既存のSlurmインフラストラクチャと統合する必要があります(--reboot)に加えて(Crayシステムのみ)省電力(アイドル状態のノードの電源を切り、オンデマンドで再起動します)。
In addition, there is a DebugFlags option of "NodeFeatures" which will
generate detailed information about KNL operations.
さらに、KNL操作に関する詳細情報を生成する「NodeFeatures」のDebugFlagsオプションがあります。
The KNL-specific available and active features are configured differently
based upon the plugin configured.
For the knl_cray plugin, KNL-specific available and active features are
not included in the "slurm.conf" configuration file, but are set and the managed
by the NodeFeatures plugin when the slurmctld daemon starts.
For the knl_generic plugin, KNL-specific features should be defined
in the "slurm.conf" configuration file. When the slurmd daemon starts on each
compute node, it will update the available and active features as needed.
Features which are not KNL-specific (e.g. rack number, "knl", etc.) will be
copied from the node's "Features" configuration in "slurm.conf" to both the
available and active feature fields and not modified by the NodeFeatures
plugin.
KNL固有の使用可能でアクティブな機能は、構成されたプラグインに基づいて異なる方法で構成されます。knl_crayプラグインの場合、KNL固有の使用可能でアクティブな機能は「slurm.conf」構成ファイルに含まれていませんが、 slurmctldデーモンの起動時のNodeFeaturesプラグイン。knl_genericプラグインの場合、KNL固有の機能を「slurm.conf」構成ファイルで定義する必要があります。slurmdデーモンが各計算ノードで起動すると、必要に応じて利用可能なアクティブな機能を更新します。KNL固有ではない機能(ラック番号、「knl」など)は、ノードの「機能」構成からコピーされます"slurm.conf"で利用可能な機能フィールドとアクティブな機能フィールドの両方に追加され、NodeFeaturesプラグインによって変更されません。
NOTE: For Dell KNL systems you must also include the SystemType=Dell
option for successful operation and will likely need to increase the
SyscfgTimeout to allow enough time for the command to successfully
complete. Experience at one site has shown that a 10 second timeout may
be necessary, configured as SyscfgTimeout=10000.
メモ:Dell KNLシステムの場合、操作を成功させるにはSystemType = Dellオプションも含める必要があり、コマンドが正常に完了するのに十分な時間を確保するには、SyscfgTimeoutを増やす必要がある可能性があります。1つのサイトでの経験から、SyscfgTimeout = 10000として構成された10秒のタイムアウトが必要になる場合があります。
Slurm does not support the concept of multiple NUMA nodes
within a single socket. If a KNL node is booted with multiple NUMA, then each
NUMA node will appear in Slurm as a separate socket.
In the slurm.conf configuration file, set node socket and
core counts to values which are appropriate for some NUMA mode to be used on the
node. When the node boots and the slurmd daemon on the node starts, it will
report to the slurmctld daemon the node's actual socket (NUMA) and core counts,
which will update Slurm data structures for the node to the values which are
currently configured.
Note that Slurm currently does not support the concept of
differing numbers of cores in each socket (or NUMA node). We are currently
working to address these issues.
Slurmは、単一のソケット内の複数のNUMAノードの概念をサポートしていません。KNLノードが複数のNUMAで起動されている場合、各NUMAノードはSlurmに個別のソケットとして表示されます。slurm.conf構成ファイルで、ノードのソケットとコアの数を、ノードで使用する一部のNUMAモードに適した値に設定します。ノードが起動してノード上のslurmdデーモンが起動すると、ノードの実際のソケット(NUMA)とコア数がslurmctldデーモンに報告され、ノードのSlurmデータ構造が現在構成されている値に更新されます。Slurmは現在、各ソケット(またはNUMAノード)でコアの数が異なるという概念をサポートしていないことに注意してください。現在、これらの問題に取り組んでいます。
Mode of Operation
- The node's configured "Features" are copied to the available and active
feature fields.
ノードの構成された「機能」は、利用可能でアクティブな機能フィールドにコピーされます。 - The node features plugin determines the node's current MCDRAM and NUMA
values as well as those which are available and adds those values to the node's
active and available feature fields respectively. Note that these values may
not be available until the node has booted and the slurmd daemon on the
compute node sends that information to the slurmctld daemon.
ノード機能プラグインは、ノードの現在のMCDRAM値とNUMA値、および利用可能な値を決定し、それらの値をノードのアクティブおよび利用可能な機能フィールドにそれぞれ追加します。これらの値は、ノードが起動し、計算ノードのslurmdデーモンがその情報をslurmctldデーモンに送信するまで使用できない場合があることに注意してください。 - Jobs will be allocated nodes already in the requested MCDRAM and NUMA mode
if possible. If insufficient resources are available with the requested
configuration then other nodes will be selected and booted into the desired
configuration once no other jobs are active on the node. Until a node is idle,
its configuration can not be changed. Note that node reboot time is roughly
on the order of 20 minutes.
ジョブには、要求されたMCDRAMおよびNUMAモードのノードが割り当てられます(可能な場合)。要求された構成で十分なリソースが利用できない場合、他のジョブがノードでアクティブにならないと、他のノードが選択され、目的の構成で起動されます。ノードがアイドル状態になるまで、その構成は変更できません。ノードの再起動時間はおよそ20分程度です。
Cray Configuration
On Cray systems, NodeFeaturesPlugins should be configured as "knl_cray".
Crayシステムでは、NodeFeaturesPluginsを「knl_cray」として構成する必要があります。
The configuration file will be named "knl_cray.conf".
The file will include the path to the capmc program (CapmcPath),
which is used to get a node's available MCDRAM and NUMA modes, change the modes,
power the node down, reboot it, etc.
Note the "CapmcTimeout" parameter is the time required for the capmc program
to respond to a request and NOT the time for a boot operation to complete.
設定ファイルの名前は「knl_cray.conf」になります。このファイルには、ノードの使用可能なMCDRAMおよびNUMAモードの取得、モードの変更、ノードの電源切断、再起動などに使用されるcapmcプログラム(CapmcPath)へのパスが含まれます。「CapmcTimeout」パラメーターは時間です。 capmcプログラムが要求に応答するために必要であり、ブート操作が完了するまでの時間ではありません。
Power saving mode is integrated with rebooting nodes in the desired mode.
Programs named "capmc_resume" and "capmc_suspend" are provided to boot nodes in
the desired mode. The programs are included in the main Slurm RPM and
installed in the "sbin" directory and must be installed on the Cray "sdb" node.
If powering down of idle nodes is not desired, then configure "ResumeProgram"
in "slurm.conf" to the path of the "capmc_resume" file and configure
"SuspendTime" to a huge value (e.g. "SuspendTime=30000000" will only power
down a node which has been idle for about one year).
省電力モードは、目的のモードでのノードの再起動と統合されています。「capmc_resume」および「capmc_suspend」という名前のプログラムは、ノードを目的のモードでブートするために提供されています。プログラムはメインのSlurm RPMに含まれており、「sbin」ディレクトリにインストールされており、Crayの「sdb」ノードにインストールする必要があります。アイドルノードの電源をオフにしたくない場合は、「slurm.conf」の「ResumeProgram」を「capmc_resume」ファイルのパスに設定し、「SuspendTime」を大きな値に設定します(「SuspendTime = 30000000」は電源オフのみになります)約1年間アイドル状態であったノード)。
Note that getting a compute node's current MCDRAM and NUMA mode,
modifying its MCDRAM and NUMA mode, and rebooting it are operations performed
by the slurmctld daemon on the head node.
計算ノードの現在のMCDRAMとNUMAモードを取得し、そのMCDRAMとNUMAモードを変更して再起動するのは、ヘッドノードのslurmctldデーモンによって実行される操作です。
The GresTypes configuration parameter should include "hbm" to identify
High Bandwidth Memory (HBM) as being a consumable resources on compute nodes.
Additional GresTypes can be specified as needed in a comma separated list.
The amount of HBM on each node should not be configured in a Slurm configuration
file, but that information will be loaded by the knl_cray plugin using
information provided by the capmc program.
GresTypes構成パラメーターに「hbm」を含めて、高帯域幅メモリー(HBM)を計算ノード上の消費可能なリソースとして識別する必要があります。必要に応じて、追加のGresTypesをコンマ区切りリストで指定できます。各ノードのHBMの量はSlurm構成ファイルで構成すべきではありませんが、その情報はcapmcプログラムによって提供される情報を使用してknl_crayプラグインによってロードされます。
Sample knl_cray.conf file
# Sample knl_cray.conf CapmcPath=/opt/cray/capmc/default/bin/capmc CapmcTimeout=2000 # msec DefaultNUMA=a2a # NUMA=all2all AllowNUMA=a2a,snc2,hemi DefaultMCDRAM=cache # MCDRAM=cache
Sample slurm.conf File
# Sample slurm.conf NodeFeaturesPlugins=knl_cray DebugFlags=NodeFeatures GresTypes=hbm # ResumeProgram=/opt/slurm/default/sbin/capmc_resume SuspendProgram=/opt/slurm/default/sbin/capmc_suspend SuspendTime=30000000 ResumeTimeout=1800 ... Nodename=default Sockets=1 CoresPerSocket=68 ThreadsPerCore=4 RealMemory=128000 Feature=knl NodeName=nid[00000-00127] State=UNKNOWN
Generic Cluster Configuration
All other clusters should have NodeFeaturesPlugins configured to "knl_generic".
This plugin performs all operations directly on the compute nodes using Intel's
syscfg program to get and modify the node's MCDRAM and NUMA mode and
uses the Linux reboot program to reboot the compute node in order for
modifications in MCDRAM and/or NUMA mode to take effect.
Make sure that RebootProgram is defined in the slurm.conf file.
This plugin currently does not permit the specification of ResumeProgram,
SuspendProgram, SuspendTime, etc. in slurm.conf, however that limitation may
be removed in the future (the ResumeProgram currently has no means of changing
the node's MCDRAM and/or NUMA mode prior to reboot).
他のすべてのクラスターでは、NodeFeaturesPluginsを「knl_generic」に構成する必要があります。このプラグインは、Intelのsyscfgプログラムを使用して計算ノードで直接すべての操作を実行してノードのMCDRAMおよびNUMAモードを取得および変更し、Linux再起動プログラムを使用してMCDRAMまたはNUMAモードの変更を有効にするために計算ノードを再起動します。RebootProgramがslurm.confファイルで定義されていることを確認してください。このプラグインは現在、slurm.confでResumeProgram、SuspendProgram、SuspendTimeなどを指定することを許可していませんが、その制限は将来削除される可能性があります(ResumeProgramは現在、ノードのMCDRAMやNUMAモードを変更する手段がありません。リブート)。
NOTE:The syscfg program reports the MCDRAM and NUMA mode to be used
when the node is next booted. If the syscfg program is used to modify the MCDRAM
or NUMA mode of a node, but it is not rebooted, then Slurm will be making
scheduling decisions based upon incorrect state information. If you want to
change node state information outside of Slurm then use the following procedure:
注:syscfgプログラムは、ノードが次に起動されたときに使用されるMCDRAMおよびNUMAモードを報告します。syscfgプログラムを使用してノードのMCDRAMまたはNUMAモードを変更しても、再起動されない場合、Slurmは誤った状態情報に基づいてスケジューリングを決定します。Slurmの外部でノード状態情報を変更する場合は、次の手順を使用します。
- Drain the nodes of interest
対象のノードをドレインします - Change their MCDRAM and/or NUMA mode
MCDRAMやNUMAモードを変更する - Reboot the nodes, then
ノードを再起動してから、 - Restore them to service in Slurm
それらをSlurmのサービスに復元します。
Sample knl_generic.conf File
# Sample knl_generic.conf SyscfgPath=/usr/bin/syscfg DefaultNUMA=a2a # NUMA=all2all AllowNUMA=a2a,snc2,hemi DefaultMCDRAM=cache # MCDRAM=cache
Sample slurm.conf File
# Sample slurm.conf NodeFeaturesPlugins=knl_generic DebugFlags=NodeFeatures GresTypes=hbm RebootProgram=/sbin/reboot ... Nodename=default Sockets=1 CoresPerSocket=68 ThreadsPerCore=4 RealMemory=128000 Feature=knl NodeName=nid[00000-00127] State=UNKNOWN
Last modified 9 October 2019