Slurm Power Management Guide

Slurm provide an integrated power management system for power capping.
Slurmは、電力制限のための統合された電力管理システムを提供します。
The mode of operation is to take the configured power cap for the system and distribute it across the compute nodes under Slurm control.
動作モードは、システムに構成された電力上限を取得し、Slurmの制御下にある計算ノード全体に分散することです。
Initially that power is distributed evenly across all compute nodes.
最初は、その電力はすべての計算ノードに均等に分散されます。
Slurm then monitors actual power consumption and redistributes power as appropriate.
次に、Slurmは実際の電力消費を監視し、必要に応じて電力を再配分します。
Specifically, Slurm lowers the power caps on nodes using less than their cap and redistributes that power across the other nodes.
具体的には、Slurmは、ノードの上限未満を使用してノードの電力上限を下げ、その電力を他のノードに再配分します。
The thresholds at which a node's power cap are raised or lowered are configurable as are the rate of change the power cap.
ノードのパワーキャップが上昇または下降するしきい値は、パワーキャップの変化率と同様に構成可能です。
In addition, starting a job on a node immediately triggers resetting the node's power cap to a higher level.
さらに、ノードでジョブを開始すると、ノードの電力上限がより高いレベルにリセットされます。
Note this functionality is distinct from Slurm's ability to power down idle nodes.
この機能は、アイドル状態のノードの電源を切るSlurmの機能とは異なることに注意してください。

Configuration

The following configuration parameters are available:
次の構成パラメーターを使用できます。

  • DebugFlags=power: Enable plugin-specific logging messages.
    DebugFlags = power:プラグイン固有のログメッセージを有効にします。
  • PowerParameters: Defines power management behavior.
    PowerParameters:電源管理の動作を定義します。
    Changes to this value take effect when the Slurm daemons are reconfigured.
    この値の変更は、Slurmデーモンが再構成されたときに有効になります。
    Currently valid options are:
    現在有効なオプションは次のとおりです。
    • balance_interval=# - Specifies the time interval, in seconds, between attempts to balance power caps across the nodes.
      balance_interval =#-ノード間で電力上限のバランスをとる試行間の時間間隔を秒単位で指定します。
      This also controls the frequency at which Slurm attempts to collect current power consumption data (old data may be used until new data is available from the underlying infrastructure and values below 10 seconds are not recommended for Cray systems).
      これは、Slurmが現在の電力消費データを収集しようとする頻度も制御します(基盤となるインフラストラクチャから新しいデータが利用可能になるまで古いデータを使用でき、Crayシステムでは10秒未満の値は推奨されません)。
      The default value is 30 seconds.
      デフォルト値は30秒​​です。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • capmc_path=/... - Specifies the absolute path of the capmc command.
      capmc_path = /...-capmcコマンドの絶対パスを指定します。
      The default value is "/opt/cray/capmc/default/bin/capmc".
      デフォルト値は「/ opt / cray / capmc / default / bin / capmc」です。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • cap_watts=#[KW|MW] - Specifies the total power limit to be established across all compute nodes managed by Slurm.
      cap_watts =#[KW | MW] -Slurmによって管理されるすべての計算ノードにわたって確立される合計電力制限を指定します。
      A value of 0 sets every compute node to have an unlimited cap.
      値0は、すべての計算ノードに無制限の上限を設定します。
      The default value is 0.
      デフォルト値は0です。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • decrease_rate=# - Specifies the maximum rate of change in the power cap for a node where the actual power usage is below the power cap by an amount greater than lower_threshold (see below).
      reduce_rate =#-実際の電力使用量がlower_thresholdよりも大きい量だけ電力上限を下回っているノードの電力上限の最大変化率を指定します(以下を参照)。
      Value represents a percentage of the difference between a node's minimum and maximum power consumption.
      値は、ノードの最小消費電力と最大消費電力の差のパーセンテージを表します。
      The default value is 50 percent.
      デフォルト値は50パーセントです。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • increase_rate=# - Specifies the maximum rate of change in the power cap for a node where the actual power usage is within upper_threshold (see below) of the power cap.
      増加率=#-実際の電力使用量が電力上限のupper_threshold(以下を参照)内にあるノードの電力上限の最大変化率を指定します。
      Value represents a percentage of the difference between a node's minimum and maximum power consumption.
      値は、ノードの最小消費電力と最大消費電力の差のパーセンテージを表します。
      The default value is 20 percent.
      デフォルト値は20パーセントです。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • job_level - All compute nodes associated with every job will be assigned the same power cap.
      job_level-すべてのジョブに関連付けられているすべての計算ノードに同じ電力上限が割り当てられます。
      Nodes shared by multiple jobs with have a power cap different from other nodes allocated to the individual jobs.
      複数のジョブで共有されているノードには、個々のジョブに割り当てられている他のノードとは異なる電力上限があります。
      By default, this is configurable by the user for each job.
      デフォルトでは、これはジョブごとにユーザーが構成できます。
    • job_no_level - Power caps are established independently for each compute node.
      job_no_level-電力上限は、計算ノードごとに個別に設定されます。
      This disabled the "--power=level" option available in the job submission commands.
      これにより、ジョブ送信コマンドで使用できる「--power = level」オプションが無効になりました。
      By default, this is configurable by the user for each job.
      デフォルトでは、これはジョブごとにユーザーが構成できます。
    • lower_threshold=# - Specify a lower power consumption threshold.
      lower_threshold =#-消費電力の下限しきい値を指定します。
      If a node's current power consumption is below this percentage of its current cap, then its power cap will be reduced.
      ノードの現在の消費電力が現在の上限のこのパーセンテージを下回っている場合、その電力上限は引き下げられます。
      The default value is 90 percent.
      デフォルト値は90パーセントです。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • recent_job=# - If a job has started or resumed execution (from suspend) on a compute node within this number of seconds from the current time, the node's power cap will be increased to the maximum.
      最近のジョブ=#-ジョブが現在の時刻からこの秒数以内に計算ノードで実行を開始または再開した場合(サスペンドから)、ノードの電力上限が最大に増加します。
      The default value is 300 seconds.
      デフォルト値は300秒です。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • set_watts=# - Specifies the power limit to be set on every compute nodes managed by Slurm.
      set_watts =#-Slurmが管理するすべての計算ノードに設定する電力制限を指定します。
      Every node gets this same power cap and there is no variation through time based upon actual power usage on the node.
      すべてのノードはこれと同じ電力上限を取得し、ノードの実際の電力使用量に基づく時間による変動はありません。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
    • upper_threshold=# - Specify an upper power consumption threshold.
      upper_threshold =#-消費電力の上限しきい値を指定します。
      If a node's current power consumption is above this percentage of its current cap, then its power cap will be increased to the extent possible.
      ノードの現在の消費電力が現在の上限のこのパーセンテージを超えている場合、その電力上限は可能な限り増加します。
      A node's power cap will also be increased if a job is newly started on it.
      ノードでジョブが新たに開始されると、ノードの電力上限も増加します。
      The default value is 95 percent.
      デフォルト値は95パーセントです。
      Supported by the power/cray_aries plugin.
      power / cray_ariesプラグインでサポートされています。
  • PowerPlugin: Identifies the plugin used to manage system power consumption.
    PowerPlugin:システムの電力消費を管理するために使用されるプラグインを識別します。
    Changes to this value require restarting Slurm daemons to take effect.
    この値を変更すると、Slurmデーモンを再起動して有効にする必要があります。
    By default, no power plugin is loaded.
    デフォルトでは、電源プラグインはロードされません。
    Currently valid options are:
    現在有効なオプションは次のとおりです。
    • power/cray_aries - Used for Cray XC systems with power monitoring and management functionality included as part of System Management Workstation (SMW) 7.0.UP03.
      power / cray_aries-システム管理ワークステーション(SMW)7.0.UP03の一部として含まれる電力監視および管理機能を備えたCrayXCシステムに使用されます。
    • power/none - No power management support.
      電源/なし-電源管理のサポートはありません。

Note for Cray systems: The JSON-C library must be installed in order to build Slurm's power/cray_aries plugin, which must parse JSON format data.
Crayシステムに関する注意:JSON形式のデータを解析する必要があるSlurmのpower / cray_ariesプラグインをビルドするには、JSON-Cライブラリをインストールする必要があります。
See Slurm's JSON installation information for details.
詳細については、SlurmのJSONインストール情報を参照してください。

Note for Cray systems: Power management is provided for native Slurm configurations (i.e. without the ALPS resource manager).
Crayシステムに関する注意:電源管理は、ネイティブSlurm構成(つまり、ALPSリソースマネージャーなし)に対して提供されます。

Note for Cray systems: Use of the capmc command requires either specifying its absolute path ("/opt/cray/capmc/default/bin/capmc" by default) or loading the capmc module:
Crayシステムに関する注意:capmcコマンドを使用するには、絶対パス(デフォルトでは「/ opt / cray / capmc / default / bin / capmc」)を指定するか、capmcモジュールをロードする必要があります。

$ module load capmc

User and System Administrator Commands


ユーザーおよびシステム管理者コマンド

Equal power caps for all nodes allocated to a job can be requested at job submission time by using the "--power=level" option with the salloc, sbatch or srun command.
salloc、sbatch、またはsrunコマンドで「--power = level」オプションを使用すると、ジョブに割り当てられたすべてのノードに等しい電力上限をジョブ送信時に要求できます。
The system administrator can override the user option with the PowerParameters configuration parameter and the job_level or job_no_level option.
システム管理者は、PowerParameters構成パラメーターとjob_levelまたはjob_no_levelオプションを使用してユーザーオプションをオーバーライドできます。

Specific minimum and maximum CPU frequency in addition to CPU governor may be requested at job submit time using the "--cpu-freq" option with the salloc, sbatch or srun command.
CPUガバナーに加えて、特定の最小および最大CPU周波数は、salloc、sbatch、またはsrunコマンドで「--cpu-freq」オプションを使用して、ジョブの送信時に要求される場合があります。
The frequency requested may be "low", "medium", "highm1" (second highest available frequency), "high" or a specific frequency (expressed as a KHz value).
要求される周波数は、「低」、「中」、「highm1」(使用可能な2番目に高い周波数)、「高」、または特定の周波数(KHz値として表される)です。
The governor specification may be "conservative", "ondemand", "performance" or "powersave".
ガバナーの仕様は、「保守的」、「オンデマンド」、「パフォーマンス」、または「省電力」の場合があります。
These values are user requests subject to system constraints.
これらの値は、システムの制約を受けるユーザー要求です。
Some examples follow.
いくつかの例を次に示します。

$ sbatch --cpu-freq=2400000-3000000 ...
$ salloc --cpu-freq=powersave ...
$ srun --cpu-freq=highm1 ...

The power consumption and power cap data are available for all compute nodes using either the "scontrol show node" or sview commands.
消費電力と電力上限のデータは、「scontrolshownode」またはsviewコマンドのいずれかを使用してすべての計算ノードで利用できます。
Information available includes "CurrentWatts" and "CapWatts".
入手可能な情報には、「CurrentWatts」および「CapWatts」が含まれます。

Example

Initial State

In our example, assume the following configuration: 10 compute node cluster, where each node has a minimum power consumption of 100 watts and maximum power consumption of 200 watts.
この例では、次の構成を想定しています。10計算ノードクラスター。各ノードの最小消費電力は100ワット、最大消費電力は200ワットです。
The following values for PowerParameters: balance_interval=60, cap_watts=1800, decrease_rate=30, increase_rate=10, lower_threshold=90, upper_threshold=98.
PowerParametersの次の値:balance_interval = 60、cap_watts = 1800、decrease_rate = 30、increase_rate = 10、lower_threshold = 90、upper_threshold = 98。
The initial state is simply based upon the cap_watts divided by the number of compute nodes: 1800 watts / 10 nodes = 180 watts per node.
初期状態は、cap_wattsを計算ノードの数で割ったものに単純に基づいています。1800ワット/ 10ノード=ノードあたり180ワット。

State in 60 Seconds

The power consumption is then examined balance_interval (60) seconds later.
次に、消費電力がbalance_interval(60)秒後に調べられます。
Assume that one of those nodes is consuming 110 watts and the others are using 180 watts.
これらのノードの1つが110ワットを消費し、他のノードが180ワットを使用していると想定します。
First we identify which nodes are consuming less than their lower_threshold of the power cap: 90% x 180 watts = 162 watts.
最初に、どのノードが消費電力上限の下限しきい値よりも少ないかを特定します:90%x180ワット= 162ワット。
One node falls in this category with 110 watts of power consumption.
1つのノードがこのカテゴリに分類され、消費電力は110ワットです。
Its power cap is reduced by either half of the difference between its current power cap and power consumption ((180 watts - 110 watts) / 2 = 35 watts) OR decrease_rate, which is a percentage of the difference between the node's maximum and minimum power consumption ((200 watts - 100 watts) x 30% = 30 watts).
その電力上限は、現在の電力上限と消費電力の差の半分((180ワット-110ワット)/ 2 = 35ワット)またはノードの最大電力と最小電力の差のパーセンテージであるdecrease_rateのいずれかによって削減されます。消費量((200ワット-100ワット)x 30%= 30ワット)。
So that node's power cap is reduce from 180 watts to 150 watts.
そのため、ノードの電力上限は180ワットから150ワットに削減されます。
Ignoring the upper_threshold parameter for now, we now have 1650 watts available to distribute to the remaining 9 compute nodes, or 183 watts per node (1650 watts / 9 nodes = 183 watts per node).
今のところupper_thresholdパラメーターを無視すると、残りの9つの計算ノードに分配できる1650ワット、つまりノードあたり183ワット(1650ワット/ 9ノード=ノードあたり183ワット)が利用可能になります。

State in 120 Seconds

The power consumption is then examined balance_interval (60) seconds later.
次に、消費電力がbalance_interval(60)秒後に調べられます。
Assume that one of those nodes is still consuming 110 watts, a second node is consuming 115 watts and the other eight are using 183 watts.
これらのノードの1つがまだ110ワットを消費し、2番目のノードが115ワットを消費し、他の8つが183ワットを使用していると仮定します。
First we identify which nodes are consuming less than their lower_threshold.
まず、どのノードがlower_thresholdよりも消費量が少ないかを特定します。
Our node using 110 watts has its cap reduced by half of the difference between its current power cap and power consumption ((150 watts - 110 watts) / 2 = 20 watts); so that node's power cap is reduce from 150 watts to 130 watts.
110ワットを使用しているノードでは、現在の電力上限と消費電力の差の半分に上限が削減されています((150ワット-110ワット)/ 2 = 20ワット)。そのため、ノードの電力上限は150ワットから130ワットに減少します。
The node consuming 115 watts has its power cap reduced by 30 watts based decrease_rate; so that node's power cap is reduce from 183 watts to 153 watts.
115ワットを消費するノードでは、電力上限が30ワットベースのdecrease_rateだけ削減されます。そのため、ノードの電力上限は183ワットから153ワットに減少します。
That leaves 1517 watts (1800 watts - 130 watts - 153 watts = 1517 watts) to be distributed over 8 nodes or 189 watts per node.
これにより、1517ワット(1800ワット-130ワット-153ワット= 1517ワット)が8ノードまたはノードあたり189ワットに分散されます。

State in 180 Seconds

The power consumption is then examined balance_interval (60) seconds later.
次に、消費電力がbalance_interval(60)秒後に調べられます。
Assume the node previously consuming 110 watts is now consuming 128 watts.
以前は110ワットを消費していたノードが、現在128ワットを消費していると仮定します。
Since that is over upper_threshold of its power cap (98% x 130 watts = 127 watts), its power cap is increased by increase_rate ((200 watts - 100 watts) x 10% = 10 watts), so its power cap goes from 130 watts to 140 watts.
これはパワーキャップのupper_threshold(98%x130ワット= 127ワット)を超えているため、パワーキャップはincrease_rate((200ワット-100ワット)x 10%= 10ワット)だけ増加し、パワーキャップは130から増加します。ワットから140ワット。
Assume the node previously consuming 115 watts has been allocated a new job.
以前に115ワットを消費していたノードに新しいジョブが割り当てられたと想定します。
This triggers the node to be allocated the same power cap as nodes previously running at their power cap.
これにより、ノードは、以前にパワーキャップで実行されていたノードと同じパワーキャップが割り当てられます。
Therefore we have 1660 watts available (1800 watts - 140 watts = 1660 watts) to be distributed over 9 nodes or 184 watts per node.
したがって、1660ワット(1800ワット-140ワット= 1660ワット)を9ノードまたはノードあたり184ワットに分散させることができます。

Notes

  • Slurm's power management plugin can be used in conjunction with the power save mode, where idle nodes are powered down and then powered back up as needed.
    Slurmの電源管理プラグインは、省電力モードと組み合わせて使用​​できます。このモードでは、アイドル状態のノードの電源を切り、必要に応じて電源を入れ直します。
    On a Cray system, set each node's power cap to the minimum value before powering it down.
    Crayシステムでは、電源を切る前に、各ノードの電力上限を最小値に設定します。
    Also set the default power cap of each node to the minimum value as that will be used at power up time.
    また、各ノードのデフォルトの電力上限を、電源投入時に使用される最小値に設定します。
  • Cray permits independent power capping for accelerators (GPUs or MICs), which is not currently used by Slurm.
    Crayは、現在Slurmで使用されていないアクセラレータ(GPUまたはMIC)の独立したパワーキャッピングを許可します。
  • Current default values for configuration parameters should probably be changed once we have a better understanding of the algorithm's behavior.
    アルゴリズムの動作をよりよく理解したら、構成パラメーターの現在のデフォルト値を変更する必要があります。
  • No integration of this logic with gang scheduling currently exists.
    現在、このロジックとギャングスケジューリングの統合はありません。
    It is not clear that configuration is practical to support as gang scheduling time slices will typically be smaller than the power management balance_interval and synchronizing changes may be difficult
    ギャングスケジューリングのタイムスライスは通常、電源管理のbalance_intervalよりも小さく、変更の同期が難しい場合があるため、構成がサポートするのに実用的であるかどうかは明らかではありません。
  • There can be situations where capmc program gets stuck for some reason and the node remains in IDLE*+POWER state until ResumeTimeout is reached, despite it has been rebooted or manually cleaned.
    capmcプログラムが何らかの理由でスタックし、ノードが再起動または手動でクリーンアップされたにもかかわらず、ResumeTimeoutに達するまでノードがIDLE * + POWER状態のままになる場合があります。
    In this situation the node can be brought back into service issuing an 'scontrol update nodename=xxx state=power_down' which will cancel the previous power_up request.
    この状況では、ノードをサービスに戻し、「scontrol update nodename = xxx state = power_down」を発行して、前のpower_up要求をキャンセルできます。
    Then capmc program must be diagnosed and fixed.
    次に、capmcプログラムを診断して修正する必要があります。

Last modified 7 Mar 2018