近年、AI開発などの大規模化に伴ってスーパーコンピューターのジョブ管理が今まで以上に重視されるようになっています。そこで活用されているのがジョブスケジューラの「Slurm」であり、この分野ではトップクラスのシェアを誇るシステムです。本記事では、Slurmの概要や特徴を分かりやすく解説します。
Slurm(Slurm Workload Manager)は、オープンソースのジョブスケジューリングシステムです。ジョブスケジューリングシステムは、コンピューター上のジョブ(CPU・GPU・メモリなどのリソースが割り当てられる処理の単位)を制御して、次のようなことを実現するシステムとなっています。
●日時や特定の操作といった条件を登録して、自動でジョブを実行させる
●ジョブに優先順位をつけて、順位の高いジョブから順に実行させる
●ジョブ実行時の異常検知やリトライ、管理者への通知を行う
●ジョブの実行ログを保存する
その中でも、Slurmは大小さまざまなクラスタを対象としたジョブスケジューラであり、高機能・高性能なシステムとして世界中のスーパーコンピューターやクラスタに導入されています。実際に、スーパーコンピューターの性能ランキングであるTOP500のうち、6割がSlurmを導入していると言われており、同分野ではトップクラスのシェアを誇るシステムです。
また、Slurmはオープンソースのシステムではあるものの、開発元の一つであるアメリカのSchedMD社から商用サポートが提供されている点も特徴となっています。
Slurmはコンピューター1台だけで利用することもできますが、もともとはクラスタを対象に開発されたシステムです。クラスタとは、複数のコンピューターをまとめて1台のコンピューターシステムにしたものを指し、次のようなメリットがあることから、昨今のスーパーコンピューターの主流となっています。
●1台のコンピューターが故障してもほかのコンピューターが処理を引き継ぐことができるため、可用性が高い
●複数のコンピューターに負荷を分散することで全体的な処理速度が向上するため、効率性が高い
●クラスタを構成するコンピューターを増やすことで処理能力を向上させられるため、拡張性が高い
昨今で注目を集めている生成AIなどのAIモデル開発や、ゲノム解析のようなデータサイエンス分野では、クラスタ型のスーパーコンピューターを使用するケースが増えています。これらの用途では、大規模なジョブを効率的かつ運用ポリシーに沿って処理する必要があることから、Slurmのようなジョブスケジューリングシステムの活用が必須となっているのです。
Slurmには、大きく三つの機能が備わっています。
●ジョブを実行するユーザーに対して、リソースへの排他的・非排他的なアクセス権限を割り当てる
●割り当てられたノードの集合上でのジョブの開始、実行、およびモニタリングを行う
●待機中のジョブを管理することでリソースの競合を解決し、パフォーマンスを向上させる
扱えるジョブの量としては、1秒間に最大1,000ジョブのキュー登録と、600ジョブの実行が可能になっており、非常に高機能なシステムといえます。また、高度にモジュール化された設計になっており、約100個のオプションプラグインを組み合わせることで、運用環境や用途に合わせた最適な運用方法を模索できる点も大きなメリットです。
ただし、高機能・高性能であるがゆえにSlurmの導入・運用にあたってはそれなりのスキルが求められます。必要に応じて、商用サポートを活用したり、外部企業のSlurm設定サービスに申し込んだりするとよいでしょう。
Slurmは極めて高機能・高性能なジョブスケジューリングシステムであるにもかかわらず、オープンソースのため無料での導入が可能です。TOP500に入るスーパーコンピューターでも多く採用されていますが、そのように高いシェアを誇るのも納得のシステムといえるでしょう。今後、本格的なAI時代が到来するにつれて、ますます重要なシステムになっていくと考えられます。