Slurm Workload Manager(旧称:Simple Linux Utility for Resource Management(SLURM)、または単にSlurm )は、 LinuxおよびUnix系カーネル向けの無料のオープンソースジョブスケジューラであり、世界の多くのスーパーコンピュータやコンピュータクラスタで使用されています。
Slurmは、並列コンピュータ上でのタスク割り当ての局所性を最適化するために、ヒルベルト曲線スケジューリングまたはファットツリーネットワークトポロジーに基づく最適適合アルゴリズムを使用します。 [ 4 ] 3つの主要な機能を提供します。
Slurm は、フリーソフトウェアのリソースマネージャとして、主にローレンス・リバモア国立研究所、SchedMD、[ 5 ] Linux NetworX、ヒューレット・パッカード、およびGroupe Bullによる共同作業として開発が始まりました。最初のリリースは 2002 年に行われました。 [ 6 ]クローズドソースのQuadrics RMSに触発され、同様の構文を共有しています。名前は、フューチュラマのソーダに由来しています。[ 7 ]世界中の 250 人以上がこのプロジェクトに貢献しています。その後、多くの大規模コンピュータセンターの要件を満たすことができる高度なバッチスケジューラに進化しました。
2010年、Slurmの開発者たちはSchedMDを設立しました。SchedMDは、公式ソースコードの維持管理、開発、レベル3の商用サポート、トレーニングサービスを提供しています。商用サポートは、 Bull、Cray 、およびScience + Computing( Atosの子会社)からも利用可能です。
2021年11月現在 Slurmは、 TOP500スーパーコンピュータの約60%でワークロードマネージャとして使用されています。[ 8 ]
Slurmは非常にモジュール化された設計で、約100種類のオプションプラグインが用意されています。最もシンプルな構成であれば、数分でインストールと設定が完了します。より高度な構成では、会計処理のためのデータベース統合、リソース制限の管理、ワークロードの優先順位付けなどの機能が提供されます。
Slurmの機能には以下が含まれます: [ 9 ]
最近の Slurm リリースはLinuxでのみ動作します。以前のバージョンは、 BSD ( FreeBSD、NetBSD、OpenBSD )を含むいくつかのPOSIXベースのオペレーティングシステムに移植されていましたが、 [ 10 ] Slurm がコア操作にcgroups を必要とするようになったため、これはもはや実現不可能です。Linux 以外のオペレーティングシステムを実行するクラスタでは、LPJS などの別のバッチ システムを使用する必要があります。[ 11 ] Slurm は、次のようないくつかの独自のコンピュータ アーキテクチャもサポートしています。

このslurmシステムは主に3つの部分から構成されています。
slurmctld単一の制御ノード上で動作する中央制御デーモン(オプションでフェイルオーバーバックアップ機能付き)。slurmdデーモンが配置されている。クライアント側の主なコマンドは、srun(対話型ジョブをキューに追加する)、sbatch(ジョブをキューに追加する)、squeue(ジョブキューを表示する) 、 scancel(キューからジョブを削除する)です。
ジョブはバッチモードまたは対話モードで実行できます。対話モードでは、計算ノードがシェルを起動し、クライアントをシェルに接続してジョブを実行します。そこから、ユーザーは実行中のジョブを監視したり、操作したりできます。通常、対話型ジョブは初期デバッグに使用され、デバッグ後、同じジョブが再度送信されますsbatch。バッチモードのジョブの場合、そのstdout出力stderrは通常、後で確認できるようにテキストファイルに書き込まれます。