From Wikipedia (Ja) - Reading time: 3 min
|
| |
| 最新版 | |
|---|---|
| リポジトリ | |
| プログラミング 言語 | C |
| 対応OS | Linux、BSDs |
| サポート状況 | active |
| 種別 | クラスタおよびスーパーコンピュータ向けのジョブスケジューラー |
| ライセンス | GNU General Public License |
| 公式サイト |
www |
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が含まれる[2]。
Slurmは、Hilbert curve schedulingまたはFat treeネットワークトポロジーに基づいた最良あてはめアルゴリズムを使用することで、並列コンピューターにおけるタスク割当の局所性を最適化している[3]。
Slurmは当初、主にローレンス・リバモア国立研究所、SchedMD[4]、Linux NetworX、ヒューレット・パッカード、Groupe Bullによる共同開発のフリーソフトウェアリソースマネージャーとして始まった。クローズドソースのQuadrics RMSにインスパイアされており、似たような構文を持っている。名前はフューチュラマのFry and the Slurm Factoryに由来する[5]。世界中の100人以上の開発者がプロジェクトに貢献している。以来、多くの巨大なコンピューターセンターの要求を満たす性能を持つ、洗練されたバッチシステムとして進化してきた。
2017年11月現在[update]、世界で最も高性能なコンピューターを表すTOP500リストにおいて、Slurmが上位10位中6個のシステムでワークロードマネージャーとして使用されている[6]。これには、10,649,600個の計算コアを持つ第1位のSunway TaihuLightも含まれる。
Slurmは高度にモジュール化された設計になっており、約100個のオプションプラグインがある。最小構成であれば、数分でインストールと設定が可能である。より洗練された設定を行うことで、アカウントのデータベースとの統合、リソースの制限の管理、ワークロードの優先付けなどが使用できる。
Slurmの特徴的な機能としては、以下のような点が挙げられる。
以下の機能は、2014年11月にリリースされたSlurm14.11の機能である[7]。
Slurmは主にLinuxディストリビューションで動作するように開発されているが、少数のPOSIXベースのオペレーティングシステム、BSDs(FreeBSD、NetBSDおよびOpenBSD)もサポートしている[8]。Slurmは以下のようなユニークなアーキテクチャーもサポートする。
SlurmはGNU General Public License V2の元で使用できる。
2010年、Slurmの開発者たちはSchedMDを立ち上げ、標準ソースのメンテナンス、開発リソースの提供、レベル3の商用サポート、およびトレーニングサービスを提供している。商用サポートは、Bright Computing、Bull、Cray、およびScience + Computingからも提供されている。
以下のリストは、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 |