Slurm Workload Manager
Slurm Workload Manager(以下、Slurm)は、
Linuxおよび
Unix系の
オペレーティングシステム向けに開発されたフリーでオープンソースなジョブスケジューラーです。Slurmは、
スーパーコンピュータやコンピュータクラスタを管理するための重要なツールであり、世界中で広く使用されています。ここでは、Slurmの主要な機能、歴史、構造、特長、サポートされているプラットフォーム、
ライセンス、商用サポートについて詳しく説明します。
主な機能
Slurmは、以下の三つの基本的な機能を提供しています。1つ目は、ユーザーに対してコンピューターノードへのアクセスを管理し、リソースを効率的に割り当てることです。2つ目は、割り当てられたノードでのジョブの監視と実行を行い、特にMPIなどの並列ジョブにおいてその効果を発揮します。最後に、Slurmは待機中のジョブのキューを効果的に管理し、リソースの競合を解決します。
特に、
TOP500のリストにおいて、Slurmは約60%の
スーパーコンピューターで使用されており、その中にはかつて世界最速とされたTianhe-2も含まれています。また、SlurmはHilbertカーブやFat treeネットワークトポロジーに基づいた最適化手法を用いており、並列コンピュータ上でのタスクの局所性を向上させています。
歴史
Slurmの開発は、主に
ローレンス・リバモア国立研究所やSchedMD、
ヒューレット・パッカードの協力によって始まりました。もともとは、Quadrics RMSというクローズドソースのシステムに触発されており、名前はアニメシリーズ『フューチュラマ』のエピソードに由来しています。世界中の100人以上の開発者が、このプロジェクトに貢献しており、スケーラブルかつ効率的なバッチシステムへと進化しています。
Slurmは2017年11月の時点で、
TOP500リストのシステム中6つに採用され、特にSunway TaihuLightのような高性能なスパコンでも用いられるなど、その利用範囲は広がっています。
構造
Slurmは、モジュール構造を持ち、約100種類のプラグインを使用して柔軟なカスタマイズが可能です。基本的なインストールは数分で済み、より高度な機能を活用するためには、データベースとの統合やリソースの制限管理が可能になります。
特徴的な機能
Slurmの特徴的な機能には、単一障害点の不在やバックアップデーモンによる耐障害性の強化、スケーラビリティの高さなどが挙げられます。例えば、
IBM Sequoiaでは、最大100,000の独立したジョブをスケジューリングでき、極めて高いパフォーマンスを誇ります。また、リアルタイムでの統計情報の取得や、各ジョブごとの異なる
オペレーティングシステムの起動も可能です。これにより、ユーザーは資源を効率的に利用し、最大限のパフォーマンスを引き出せます。
対応プラットフォーム
Slurmは、主に
Linuxディストリビューションで動作しますが、FreeBSDや
NetBSDといった他の
POSIX準拠のOSもサポートしています。特定のアーキテクチャにおいても利用可能で、
IBM BlueGene/QやCray XTシリーズなどの高性能コンピュータにも対応しています。
Slurmは
GNU General Public License V2の下で行われており、誰でも自由に使用、修正することができます。また、商用サポートに関しては、2010年からはSchedMDが設立され、標準ソースのメンテナンスやトレーニングサービス、商用サポートを提供しています。これにより、企業ユーザーも安心して利用できる環境が整っています。
まとめ
Slurmは、非常に高性能でスケーラブルなオープンソースのジョブスケジューラーであり、大規模な計算リソースを効率的に管理するための優れたソリューションを提供しています。
スーパーコンピュータやクラスタでの利用が進む中で、その重要性はますます高まっています。