Slurm Workload Manager

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が含まれる。 Slurmは、Hilbert curve scheduling（英語版）またはFat tree（英語版）ネットワークトポロジーに基づいた最良あてはめアルゴリズムを使用することで、並列コンピューターにおけるタスク割当の局所性を最適化している。 Slurmは当初、主にローレンス・リバモア国立研究所、SchedMD（英語版）、Linux NetworX、ヒューレット・パッカード、Groupe Bullによる共同開発のフリーソフトウェアリソースマネージャーとして始まった。クローズドソースのQuadrics RMSにインスパイアされており、似たような構文を持っている。名前はフューチュラマのFry and the Slurm Factory（英語版）に由来する。世界中の100人以上の開発者がプロジェクトに貢献している。以来、多くの巨大なコンピューターセンターの要求を満たす性能を持つ、洗練されたバッチシステムとして進化してきた。 2017年11月 (2017-11)現在[update]、世界で最も高性能なコンピューターを表すTOP500リストにおいて、Slurmが上位10位中6個のシステムでワークロードマネージャーとして使用されている。これには、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の機能である。 ジョブアレイデータ構造とスケーラビリティーの改善 heterogeneousな汎用のリソースのサポート CPU governorを設定するユーザーオプションの追加 exitの値に基づいた自動ジョブリキューポリシー レポートAPIを使用した、ユーザー・タスクの種類・回数・消費時間を取得 通信ゲートウェイノードのスケーラビリティーの向上 Slurmは主にLinuxディストリビューションで動作するように開発されているが、少数のPOSIXベースのオペレーティングシステム、BSDs（FreeBSD、NetBSDおよびOpenBSD）もサポートしている。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からも提供されている。 クラスタのジョブ管理とバッチキュー Beowulfクラスター Maui Cluster Scheduler（英語版） Open Source Cluster Application Resources（英語版） (OSCAR) TORQUE（英語版） Univa Grid Engine（英語版） ^ “USC University of Southern California Center for High-Performance Computing”. 2019年3月30日閲覧。 ^ 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。 ^ “Slurm Commercial Support, Development, and Installation”. SchedMD. 2014年2月23日閲覧。 ^ “SLURM: Simple Linux Utility for Resource Management” (23 June 2003). 11 January 2016閲覧。 ^ “USC University of Southern California Center for High-Performance Computing”. 2019年3月30日閲覧。 ^ “Slurm - What's New”. SchedMD. 2014年8月29日閲覧。 ^ Slurm Platforms 以下のリストは、SLURMで使用できる便利なコマンドのリストである。いくつかのコマンドはCCRで開発され、ユーザーがレポートを簡単に作成できるようになっている。 これらのコマンドの使用方法の情報を確認するには、--helpコマンドを使用すること（例: sinfo --help） linuxコマンド「man」を使用すると、これらのコマンドの大部分に関する詳細な情報を確認できる（例: man sinfo） コマンドの太字になっている部分は、ユーザーが入力する情報である。ブラケット部分はオプションであることを表している。 SchedMD公式サイト Slurmドキュメント Slurm Workload Manager Architecture Configuration and Use