Slurmとは

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の比較表

    機能OpenPBSSlurm
    コスト無料無料
    サポートコミュニティコミュニティ
    商用サポート
    スケジューラ・FIFO
    ・FairShare
    ・BackFill
    ・FIFO
    ・FairShare
    ・BackFill
    ・QoS
    ・associations
    統計情報・CPU使用率
    ・メモリ使用量
    ・ジョブ時間
    ・CPU使用率
    ・メモリ使用量
    ・ジョブ時間
    ・消費電力
    ・ネットワーク帯域
    ・I/O情報
    プラットフォーム・Linux
    ・Windows
    ・Linux

    OpenPBSとSlurmのコマンド比較

    コマンド名OpenPBSSlurm
    ジョブの投入qsubsbatch
    ジョブのキャンセルqdel <jobid>scancel <jobid>
    ジョブステータスqstat <jobid>squeue <jobid>

    OpenPBSとSlurmのバッチジョブ比較

    OpenPBSSlurm
    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