Slurm User and Administrator Guide for Cray Systems Natively


User Guide

This document describes the unique features of Slurm on Cray XC computers natively, or without the use of Cray's Application Level Placement Scheduler (ALPS).
このドキュメントでは、Cray XCコンピューター上のSlurmの固有の機能について、ネイティブに、またはCrayのアプリケーションレベル配置スケジューラー(ALPS)を使用せずに説明します。
You should be familiar with the Slurm's mode of operation on Linux clusters before studying the differences in Cray system operation described in this document.
このドキュメントで説明されているCrayシステムの動作の違いを理解する前に、LinuxクラスターでのSlurmの動作モードに精通している必要があります。
When running Slurm in native mode a Cray system will function very similar to a Linux cluster.
Slurmをネイティブモードで実行すると、CrayシステムはLinuxクラスターと非常によく似た機能を果たします。

Slurm is designed to operate as a workload manager on Cray XC systems (Cascade) without the use of ALPS.
Slurmは、ALPSを使用せずにCray XCシステム(Cascade)のワークロードマネージャーとして動作するように設計されています。
In addition to providing the same look and feel of a regular Linux cluster this also allows for many functionalities such as:
通常のLinuxクラスターと同じルックアンドフィールを提供することに加えて、これにより、次のような多くの機能も可能になります。

  • Ability to run multiple jobs per node
    ノードごとに複数のジョブを実行する機能
  • Ability to status running jobs with sstat
    sstatを使用して実行中のジョブをステータス設定する機能
  • Full accounting support for job steps
    ジョブステップの完全なアカウンティングサポート
  • Ability to run multiple jobs/steps in background from the same session
    同じセッションからバックグラウンドで複数のジョブ/ステップを実行する機能

Cray Specific Features

  • Network Performance Counters
  • To access Cray's Network Performance Counters (NPC) you can use the --network option in sbatch/salloc/srun to request them.
    Crayのネットワークパフォーマンスカウンター(NPC)にアクセスするには、sbatch / salloc / srunの--networkオプションを使用してそれらを要求できます。
    There are 2 different types of counters, system and blade.
    カウンターには、システムとブレードの2種類があります。

    For the system option (--network=system) only one job can use system at a time.
    システムオプション(--network = system)の場合、一度に1つのジョブのみがシステムを使用できます。
    Only nodes requested will be marked in use for the job allocation.
    要求されたノードのみが、ジョブ割り当てに使用中でマークされます。
    If the job does not fill up the entire system the rest of the nodes are not able to be used by other jobs using NPC, if idle their state will appear as PerfCnts.
    ジョブがシステム全体をいっぱいにしない場合、残りのノードはNPCを使用する他のジョブで使用できません。アイドル状態の場合、それらの状態はPerfCntsとして表示されます。
    These nodes are still available for other jobs not using NPC.
    これらのノードは、NPCを使用しない他のジョブでも引き続き使用できます。

    For the blade option (--network=blade) Only nodes requested will be marked in use for the job allocation.
    ブレードオプション(--network = Blade)の場合、要求されたノードのみがジョブ割り当てに使用中でマークされます。
    If the job does not fill up the entire blade(s) allocated to the job those blade(s) are not able to be used by other jobs using NPC, if idle their state will appear as PerfCnts.
    ジョブに割り当てられたブレード全体がジョブでいっぱいにならない場合、それらのブレードはNPCを使用する他のジョブで使用できません。アイドル状態の場合、それらの状態はPerfCntsとして表示されます。
    These nodes are still available for other jobs not using NPC.
    これらのノードは、NPCを使用しない他のジョブでも引き続き使用できます。

  • Core Specialization
  • To use set CoreSpecPlugin=core_spec/cray_aries.
    set CoreSpecPlugin = core_spec / cray_ariesを使用するには。
    Ability to reserve a number of cores allocated to the job for system operations and not used by the application.
    システム操作のためにジョブに割り当てられ、アプリケーションによって使用されない多数のコアを予約する機能。
    The application will not use these cores, but will be charged for their allocation.
    アプリケーションはこれらのコアを使用しませんが、それらの割り当てに対して課金されます。

Admin Guide

Many new plugins were added to utilize the Cray system without ALPS.
ALPSなしでCrayシステムを利用するために、多くの新しいプラグインが追加されました。
These should be set up in your slurm.conf outside of your normal configuration.
これらは、通常の構成の外でslurm.confに設定する必要があります。

  • BurstBuffer
  • Set BurstBufferPlugins=burst_buffer/datawarp to use.
    BurstBufferPlugins = burst_buffer / datawarpを使用するように設定します。
    The burst buffer capability on Cray systems is also known by the name DataWarp.
    Crayシステムのバーストバッファ機能は、DataWarpという名前でも知られています。
    For more information, see Slurm Burst Buffer Guide.
    詳細については、Slurm Burst BufferGuideを参照してください。

  • CoreSpec
  • To use set CoreSpecPlugin=core_spec/cray_aries.
    set CoreSpecPlugin = core_spec / cray_ariesを使用するには。

  • JobSubmit
  • Set JobSubmitPlugins=job_submit/cray_aries to use.
    JobSubmitPlugins = job_submit / cray_ariesを使用するように設定します。
    This plugin is primarily used to set a gres=craynetwork value which is used to limit the number of applications that can run on a node at once.
    このプラグインは主に、ノードで一度に実行できるアプリケーションの数を制限するために使用されるgres = craynetwork値を設定するために使用されます。
    For a node without MICs on it that number at most is 4.
    MICがないノードの場合、その数は最大で4です。
    Nodes with MICs the number drops to 2.
    MICを備えたノードの数は2に減少します。
    This craynetwork gres needs to be set up in your slurm.conf to ensure proper functionality.
    このcraynetworkgresは、適切な機能を確保するためにslurm.confで設定する必要があります。
    In example...
    例では...

        ...
        Grestypes=craynetwork
        NodeName=nid000[00-10] gres=craynetwork:4 #node without MIC
        NodeName=nid000[11-20] gres=craynetwork:2 #node with MIC
        ...
      

  • Power
  • Set PowerPlugin=power/cray_aries to use.
    PowerPlugin = power / cray_ariesを使用するように設定します。
    PowerParameters is also typically configured.
    PowerParametersも通常構成されます。
    For more information, see Slurm Power Management Guide.
    詳細については、Slurm Power ManagementGuideを参照してください。

  • Proctrack
  • Set ProctrackType=proctrack/cray_aries to use.
    使用するProctrackType = proctrack / cray_ariesを設定します。

  • Select
  • Set SelectType=select/cray_aries to use.
    使用するSelectType = select / cray_ariesを設定します。
    This plugin is a layered plugin.
    このプラグインはレイヤードプラグインです。
    Which means it enhances a lower layer select plugin.
    つまり、下位層の選択プラグインが強化されます。
    By default it is layered on top of the select/linear plugin.
    デフォルトでは、select / linearプラグインの上にレイヤー化されています。
    It can also be layered on top of the select/cons_res plugin by using the SelectTypeParameters=other_cons_res, doing this will allow you to run multiple jobs on a Cray node just like on a normal Linux cluster.
    SelectTypeParameters = other_cons_resを使用して、select / cons_resプラグインの上にレイヤー化することもできます。これにより、通常のLinuxクラスターと同じようにCrayノードで複数のジョブを実行できます。
    Use additional SelectTypeParameters to identify the resources to allocate (e.g. cores, sockets, memory, etc.). See the slurm.conf man page for details.
    追加のSelectTypeParametersを使用して、割り当てるリソース(コア、ソケット、メモリなど)を識別します。詳細については、slurm.confのmanページを参照してください。

  • SlurmctldPort, SlurmdPort, SrunPortRange
  • Realm-Specific IP Addressing (RSIP) will automatically try to interact with anything opened on ports 8192 to 60000.
    Realm-Specific IP Addressing(RSIP)は、ポート8192から60000で開かれているものすべてと自動的に対話しようとします。
    Configure SlurmctldPort, SlurmdPort, and SrunPortRange to use ports above 60000.
    60000を超えるポートを使用するように、SlurmctldPort、SlurmdPort、およびSrunPortRangeを構成します。
    In the case of SrunPortRange, making 1000 or more ports available is recommended.
    SrunPortRangeの場合、1000以上のポートを使用可能にすることをお勧めします。

  • Switch
  • Set SwitchType=switch/cray_aries to use.
    使用するようにSwitchType = switch / cray_ariesを設定します。

  • Task
  • Set TaskPlugin=cray_aries,cgroup to use.
    TaskPlugin = cray_aries、cgroupを使用するように設定します。
    Use of the task/cgroup plugin is required alongside task/cray_aries.
    task / cray_ariesと一緒にtask / cgroupプラグインを使用する必要があります。
    You may also use the task/affinity plugin along with task/cray_aries,task/cgroup if desired (i.e. TaskPlugin=cray_aries,affinity,cgroup).
    必要に応じて、task / affinityプラグインをtask / cray_aries、task / cgroupと一緒に使用することもできます(つまり、TaskPlugin = cray_aries、affinity、cgroup)。
    Note that plugins are used in the order they are defined in the comma separated list, and that task/cray_aries must be listed before task/cgroup due to internal dependencies between the two plugins.
    プラグインはコンマ区切りのリストで定義されている順序で使用され、2つのプラグイン間の内部依存関係のため、task / cray_ariesはtask / cgroupの前にリストする必要があることに注意してください。

Cray system setup

Some Slurm plugins (burst_buffer/datawarp and power/cray_aries) plugins parse JSON format data.
一部のSlurmプラグイン(burst_buffer / datawarpおよびpower / cray_aries)プラグインは、JSON形式のデータを解析します。
These plugins are designed to make use of the JSON-C library for this purpose.
これらのプラグインは、この目的のためにJSON-Cライブラリを利用するように設計されています。
See JSON-C installation instructions for details.
詳細については、JSON-Cのインストール手順を参照してください。

Some services on the system need to be set up to run correctly with Slurm.
システム上の一部のサービスは、Slurmで正しく実行するように設定する必要があります。
Below is how to restart the service and the nodes they run on.
以下は、サービスとそれらが実行されるノードを再起動する方法です。
It is probably a good idea to set this up to happen automatically.
これが自動的に行われるように設定することをお勧めします。

  • boot node
    • WLM_DETECT_ACTIVE=SLURM /etc/init.d/aeld restart
      WLM_DETECT_ACTIVE = SLURM /etc/init.d/aeld restart
  • sdb node
    • WLM_DETECT_ACTIVE=SLURM /etc/init.d/ncmd restart
      WLM_DETECT_ACTIVE = SLURM /etc/init.d/ncmd restart
    • WLM_DETECT_ACTIVE=SLURM /etc/init.d/apptermd restart
      WLM_DETECT_ACTIVE = SLURM /etc/init.d/apptermd restart

As with Linux clusters you will need to start a slurmd on each of your compute nodes.
Linuxクラスターと同様に、各計算ノードでslurmdを開始する必要があります。
If you choose to use munge authentication, advised, you will also need munge installed and a munged running on each of your compute nodes as well.
munge認証を使用することを選択した場合は、mungeをインストールし、各計算ノードでMungeを実行する必要もあります。
See the quick start guide for more info.
詳細については、クイックスタートガイドを参照してください。
Outside of the differences listed in this file it can be used to set up your Cray system to run Slurm natively.
このファイルにリストされている違い以外に、Slurmをネイティブに実行するようにCrayシステムをセットアップするために使用できます。

On larger systems, you may wish to set the PMI_MMAP_SYNC_WAIT_TIME environment variable in your users' profiles to a larger value than the default (180 seconds) to prevent PMI from falsely detecting job launch failures.
大規模なシステムでは、ユーザーのプロファイルのPMI_MMAP_SYNC_WAIT_TIME環境変数をデフォルト(180秒)よりも大きい値に設定して、PMIがジョブの起動の失敗を誤って検出しないようにすることができます。

High Availability

A backup controller can be setup in or outside the Cray.
バックアップコントローラーは、Crayの内外にセットアップできます。
However, when the backup is within the Cray, both the primary and the backup controllers will go down when the Cray is rebooted.
ただし、バックアップがCray内にある場合、Crayを再起動すると、プライマリコントローラーとバックアップコントローラーの両方がダウンします。
It is best to setup the backup controller on a Cray external node so that the controller can still receive new jobs when the Cray is down.
Crayがダウンしているときにコントローラーが新しいジョブを受信できるように、Cray外部ノードにバックアップコントローラーをセットアップすることをお勧めします。
When the backup is configured on an external node the no_backup_scheduling SchedulerParameter should be specified in the slurm.conf.
バックアップが外部ノードで構成されている場合、no_backup_schedulingSchedulerParameterをslurm.confで指定する必要があります。
This allows new jobs to be submitted while the Cray is down and prevents any new jobs from being started.
これにより、Crayがダウンしているときに新しいジョブを送信できるようになり、新しいジョブが開始されるのを防ぐことができます。

Last modified 7 March 2019