
Slurmは、クラスタシステムのためのジョブスケジューラーです。
高機能で、拡張性が高く耐障害性があることが特徴です。
昨今話題となっているAI開発や、ゲノム解析で使用するGPUを含む環境でも有効です。
TOP500のおよそ6割がSlurmを使用しており、AWS Parallel ClusterもSlurmを採用しています。
特徴
- 耐障害性・高機能を持ち合わせながらオープンソースであること
- 1秒間に最大で 1,000 ジョブのキュー登録と、600 ジョブ実行が可能
- 複数のSlurmクラスタのアカウンティング情報をデータベースに記録することができること
- REST APIが使用できること
- 各ジョブごとの消費電力・ネットワーク使用量などの取得
- 1ファイルでのクラスタの管理(最小構成の場合)
- GUIがあること(管理者用)


柔軟なスケジュール管理
Slurmには豊富なリソース管理機能が設定が可能です。
- FIFO
- FairShare
- associations(ユーザやグループなどをグループ化したもの)
- QoS(特定のユーザやグループ・ジョブの優先度設定)
OpenPBSとSlurmの比較表
機能 | OpenPBS | Slurm |
コスト | 無料 | 無料 |
サポート | コミュニティ | コミュニティ 商用サポート |
スケジューラ | ・FIFO ・FairShare ・BackFill | ・FIFO ・FairShare ・BackFill ・QoS ・associations |
統計情報 | ・CPU使用率 ・メモリ使用量 ・ジョブ時間 | ・CPU使用率 ・メモリ使用量 ・ジョブ時間 ・消費電力 ・ネットワーク帯域 ・I/O情報 |
プラットフォーム | ・Linux ・Windows | ・Linux |
OpenPBSとSlurmのコマンド比較
コマンド名 | OpenPBS | Slurm |
ジョブの投入 | qsub | sbatch |
ジョブのキャンセル | qdel <jobid> | scancel <jobid> |
ジョブステータス | qstat <jobid> | squeue <jobid> |
OpenPBSとSlurmのバッチジョブ比較
OpenPBS | Slurm | |
Prefix | #PBS | #SBATCH |
キュー指定(パーティション) | -q <queue> | -p <partition> |
ジョブ名 | -N <name> | -J<name> |
コア数 | -l ncpus= <number> | n <number> |
メモリ | -l mem=<number> | –mem=<number> |
GPU | -l ngpus=<number> | –gpus=<number> |
標準出力 | -o <filename> | -o <filename> |
標準エラー出力 | -e <filename> | -e <filename> |
ディレクトリの指定 | $PBS_O_WORKDIR | $SLURM_SUBMIT_DIR |
ジョブID | $PBS_JOBID | $SLURM_JOBID |
ジョブアレイ番号 | $PBS_ARRAYID | $SLURM_ARRAY_TASK_ID |