Slurm Workload Manager

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Slurm
最新版
20.11.5 / 2021年3月16日 (3年前) (2021-03-16)
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS LinuxBSDs
サポート状況 active
種別 クラスタおよびスーパーコンピュータ向けのジョブスケジューラー
ライセンス GNU General Public License
公式サイト www.schedmd.com
テンプレートを表示

Slurm Workload Manager(旧称:Simple Linux Utility for Resource Management、SLURM)またはSlurmは、LinuxおよびUnix系カーネルのためのフリーでオープンソースジョブスケジューラーである。世界中の多くのスーパーコンピューターコンピュータークラスタで使用されている。Slurmは3つの主要な機能を提供している。1番目は、計算を実行するユーザーに対してリソース(コンピューターノード)への排他的・非排他的なアクセスを割り当てる機能である。2番目は、割り当てられたノードの集合上でのジョブの開始、実行、モニタリング(MPIなどの並列ジョブでよく使用される)を行う機能である。3番目は、待機中のジョブのキューを管理することで、リソースへの競合を解決する機能である。

Slurmは、TOP500の約60%のスーパーコンピューターでワークロードマネージャーとして使用されている。これには、2016年まで世界最速だったTianhe-2が含まれる[1]

Slurmは、Hilbert curve scheduling英語版またはFat tree英語版ネットワークトポロジーに基づいた最良あてはめアルゴリズムを使用することで、並列コンピューターにおけるタスク割当の局所性を最適化している[2]

歴史[編集]

Slurmは当初、主にローレンス・リバモア国立研究所、SchedMD英語版[3]、Linux NetworX、ヒューレット・パッカードGroupe Bullによる共同開発のフリーソフトウェアリソースマネージャーとして始まった。クローズドソースのQuadrics RMSにインスパイアされており、似たような構文を持っている。名前はフューチュラマFry and the Slurm Factory英語版に由来する[4]。世界中の100人以上の開発者がプロジェクトに貢献している。以来、多くの巨大なコンピューターセンターの要求を満たす性能を持つ、洗練されたバッチシステムとして進化してきた。

2017年11月 (2017-11)現在、世界で最も高性能なコンピューターを表すTOP500リストにおいて、Slurmが上位10位中6個のシステムでワークロードマネージャーとして使用されている[5]。これには、10,649,600個の計算コアを持つ第1位のSunway TaihuLightも含まれる。

構造[編集]

Slurmは高度にモジュール化された設計になっており、約100個のオプションプラグインがある。最小構成であれば、数分でインストールと設定が可能である。より洗練された設定を行うことで、アカウントのデータベースとの統合、リソースの制限の管理、ワークロードの優先付けなどが使用できる。

特徴的な機能[編集]

Slurmの特徴的な機能としては、以下のような点が挙げられる。

  • 単一障害点が存在せず、バックアップデーモンを持ち、耐障害性のあるジョブオプションが設定できる
  • 極めてスケーラブルである(たとえば、IBM Sequoiaの100,000ソケット上で最大100,000の独立したジョブをスケジューリングできた)
  • ハイパフォーマンス(最大で、ジョブ登録が1,000ジョブ/秒、ジョブ実行が600ジョブ/秒)
  • フリーでオープンソースのソフトウェアである(GNU General Public License
  • 約100のプラグインを使用することで高度にカスタマイズが可能
  • 階層的なバンクアカウントを用いたフェアな共有スケジューリング
  • プリエンプティブ・ギャングスケジューリングの設定(並列ジョブの時間をスライスできる)
  • アカウントと設定をデータベースと統合
  • ネットワークトポロジーおよびノード上のトポロジー(ソケット、コア、ハイパースレッディング)に最適化したリソースの割り当て
  • 発展的なリソースの予約
  • アイドルノードの電源をオフにすることができる
  • 各ジョブごとに異なるオペレーティングシステムをブートすることができる
  • 一般のリソース(例:GPU)に対してスケジューリングが可能
  • リアルタイムのタスクレベルでの統計(UPUやメモリの使用量が高いタスクを特定できる)
  • ユーザーまたはバンクアカウントごとのリソース制限
  • ジョブごとの消費電力の集計
  • IBM Parallel Environment(PE/POE)のサポート
  • ジョブアレイのサポート
  • ジョブのプロファイリング(CPUの使用量、メモリの使用量、消費電力量、ネットワークおよびファイルシステムの使用量の定期的なサンプリング)
  • さまざまな指標に基づいた洗練されたジョブ優先度決定アルゴリズム
  • MapReduce+のサポート

以下の機能は、2014年11月にリリースされたSlurm14.11の機能である[6]

  • ジョブアレイデータ構造とスケーラビリティーの改善
  • heterogeneousな汎用のリソースのサポート
  • CPU governorを設定するユーザーオプションの追加
  • exitの値に基づいた自動ジョブリキューポリシー
  • レポートAPIを使用した、ユーザー・タスクの種類・回数・消費時間を取得
  • 通信ゲートウェイノードのスケーラビリティーの向上

対応プラットフォーム[編集]

Slurmは主にLinuxディストリビューションで動作するように開発されているが、少数のPOSIXベースのオペレーティングシステムBSDsFreeBSDNetBSDおよびOpenBSD)もサポートしている[7]。Slurmは以下のようなユニークなアーキテクチャーもサポートする。

  • 20 petaflop IBM Sequoiaを含むIBM BlueGene/Qモデル
  • Cray XT、XE、Cascade
  • Tianhe-2 - 32,000個のIntel Ivy Bridgeと48,000 Intel Xeon Phiを使用した、合計3,100,000のコアを持つ33.9ペタフロップスのシステム
  • IBM Parallel Environment
  • Anton

ライセンス[編集]

SlurmはGNU General Public License V2の元で使用できる。

商用サポート[編集]

2010年、Slurmの開発者たちはSchedMDを立ち上げ、標準ソースのメンテナンス、開発リソースの提供、レベル3の商用サポート、およびトレーニングサービスを提供している。商用サポートは、Bright Computing、Bull、Cray、およびScience + Computingからも提供されている。

関連項目[編集]

参考文献[編集]

  1. ^ USC University of Southern California Center for High-Performance Computing”. 2019年3月30日閲覧。
  2. ^ Pascual, Jose Antonio; Navaridas, Javier; Miguel-Alonso, Jose (2009). Effects of Topology-Aware Allocation Policies on Scheduling Performance. Job Scheduling Strategies for Parallel Processing. Lecture Notes in Computer Science. Vol. 5798. pp. 138–144. doi:10.1007/978-3-642-04633-9_8. ISBN 978-3-642-04632-2
  3. ^ Slurm Commercial Support, Development, and Installation”. SchedMD. 2014年2月23日閲覧。
  4. ^ SLURM: Simple Linux Utility for Resource Management” (2003年6月23日). 2016年1月11日閲覧。
  5. ^ USC University of Southern California Center for High-Performance Computing”. 2019年3月30日閲覧。
  6. ^ Slurm - What's New”. SchedMD. 2014年8月29日閲覧。
  7. ^ Slurm Platforms

追加資料[編集]

SLURMコマンド[編集]

以下のリストは、SLURMで使用できる便利なコマンドのリストである。いくつかのコマンドはCCRで開発され、ユーザーがレポートを簡単に作成できるようになっている。

これらのコマンドの使用方法の情報を確認するには、--helpコマンドを使用すること(例: sinfo --help)

linuxコマンド「man」を使用すると、これらのコマンドの大部分に関する詳細な情報を確認できる(例: man sinfo)

コマンドの太字になっている部分は、ユーザーが入力する情報である。ブラケット部分はオプションであることを表している。

LiSLURM  slurmhelp
[View information about SLURM nodes & partitions ] sinfo [-p partition_name or -M cluster_name]
[List example SLURM scripts ls -p /util/slurm-scripts less
[Submit a job script for later execution sbatch 'script-file
[Cancel a pending or running job scancel jobid
[Check the state of a user’s jobs squeue --user=username
[Allocate compute nodes for interactive use salloc
[Run a command on allocated compute nodes srun
[Display node information snodes [node cluster/partition state]
[Launch an interactive job fisbatch [various sbatch options]
[List priorities of queued jobs sranks
[Get the efficiency of a running job sueff user-name
[Get SLURM accounting information for a user’s jobs from start date to now suacct start-date user-name
[Get SLURM accounting and node information for a job slist jobid
[Get resource usage and accounting information for a user’s jobs from start date to now slogs start-date user-list
[Get estimated starting times for queued jobs stimes [various squeue options]
[Monitor performance of a SLURM job /util/ccrjobvis/slurmjobvis jobid

外部リンク[編集]