よく使うSlurmのscontrolコマンド
これはrioyokotalab Advent Calendar 2020 16日目の記事です.
何の話か
Slurmのscontrolコマンドは,クラスタの追加・設定やジョブの管理など,Slurmを使って複数ノードのジョブスケジューリングをしている場合は頻繁に使います.
その中で,自分がよく使うコマンドをいくつか書いていきます.
scontrol update
sinfoでノードがdownと表示されるようになった場合などによく使うコマンドです.
こんな感じで状態をidleにできます.
いくつかのノードのstateをまとめて更新することもできます.
idleにする場合は上記のコマンドで十分なのですが,逆にdownにしたい場合などはreasonを付与する必要があります.
down*のように*が付いている場合は,Slurmのデータベース上でdownなだけではなく,ノードやネットワーク自体にも問題があるため,そちらを直さない限りidle*になったところでジョブは割り当てられません.
scontrol show
このコマンドではノードやパーティション,ジョブの状態をみることができます.
例えば,jobに割り当てられている計算資源や時間制限を見たければ,
とすることで見ることができます.
また,ノードの持つ計算資源やOSの種類,最終起動時間などを見たければ, とすることで見ることができます.
このようにENTRY=IDを指定することで,どの情報を表示させるかを指定するのですが,ENTRYはjobやnode以外にも多くのものを指定することができます.
詳細はSlurmの公式ページをご覧ください.
scontrol - Slurm
scontrol write batch_script
バッチジョブを実行するためにはジョブスクリプトを書きますが,このコマンドで指定したジョブを実行するために使ったジョブスクリプトを出力できます.
使い方はこんな感じです.
実行すると,デフォルトではslurm-job_id.shといったファイル名で書き出されます.
標準出力で見たい場合は
というように-を付けることでそうできます.
おわりに
個人的にはscontrolはユーザとしても管理者としても使いやすいものとなっていると思っていて重宝しています.
ドキュメントもちゃんと整備されていてありがたいです.