SLURM — CAE用語解説
SLURM
先生、HPCクラスタで計算を投げるとき「SLURMにジョブを投入して」って言われたんですけど、SLURMって何ですか?
SLURMは「Simple Linux Utility for Resource Management」の略で、オープンソースのジョブスケジューラだ。大量のユーザーが共有するスパコンで、誰の計算をいつどのノードで走らせるかを管理してくれるんだよ。
あー、信号待ちみたいなもんですか? 先に来た人から順番に走らせる?
基本はキュー(待ち行列)に並ぶんだけど、単純な先着順じゃなくて、フェアシェアポリシーで管理される。使いすぎてる人の優先度は下がるし、小さいジョブが大きいジョブの隙間に入るバックフィル機能もある。
具体的にはどうやって投入するんですか? コマンドが色々あるって聞くんですけど。
ジョブスクリプトを書いてsbatch job.shで投入。状況確認はsqueue、キャンセルはscancel。スクリプトには「ノード数4、コア数128、実行時間24時間」みたいなリソース要求を#SBATCHディレクティブで書くんだ。
へぇ、PBSでqsubを使ってた経験があるんですけど、似てますね。SLURMのほうがメジャーですか?
今はSLURMがシェアNo.1だよ。Top500のスパコンの6割以上がSLURMを採用してる。PBSも使われてるけど、商用版のPBS Proに移行が進んでてフリーで使いにくくなった面がある。SLURMはオープンソースで開発が活発だから、特に大学や研究機関で圧倒的だね。
CAEの大規模解析で使うとき、何か気を付けることってありますか?
実行時間の見積もりが甘いと途中で打ち切られるから、余裕をもって指定すること。あと、並列数を増やしすぎてノード間通信がボトルネックになるとかえって遅くなる。事前にスケーリングテストをして適切なノード数を決めるのが、計算機代を無駄にしないコツだよ。
なるほど、ジョブスクリプトの書き方からスケーリングテストまで、計算を投げる前にやることが結構あるんですね。まずはsbatchとsqueueの使い方から覚えます。
その2つとscancel を覚えれば日常のジョブ管理はほぼカバーできるよ。あとはsacctで過去のジョブ履歴を見れば、自分の計算がどのくらいリソースを使ったか分析できるから、次のジョブの設定改善にも役立つんだ。
CAE用語の正確な理解は、チーム内のコミュニケーションの基盤です。 — Project NovaSolverは実務者の学習支援も視野に入れています。
CAEの未来を、実務者と共に考える
Project NovaSolverは、SLURMにおける実務課題の本質に向き合い、エンジニアリングの現場を支える道具づくりを目指す研究開発プロジェクトです。
プロジェクトの最新情報を見る →関連トピック
なった
詳しく
報告