差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| サーバ関連:slurm [2018/12/17 10:17] – mumeiyamibito | サーバ関連:slurm [2019/03/01 15:53] (現在) – 削除 mumeiyamibito | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== Slurm ====== | ||
| - | ===== 概要 ===== | ||
| - | * Torque や Sun Grid Engine のようなジョブ管理ツール。 | ||
| - | * 現状、ドキュメントは Torque の方が多く、Slurm は圧倒的にドキュメントが少なく、日本語ドキュメントはさらに少ない…。 | ||
| - | * Ubuntu のデフォルトリポジトリには登録されている。 | ||
| - | ===== プログラム ===== | ||
| - | * '' | ||
| - | * '' | ||
| - | * 参考サイト: | ||
| - | |||
| - | ===== インストール方法 ===== | ||
| - | * ここでは、Ubuntu 16.04 ベースで、ソースからコンパイルする方法を紹介する。 | ||
| - | |||
| - | - 認証システム munge をインストールする。\\ <code bash> | ||
| - | $ sudo apt-get install libmunge-dev libmunge2 munge | ||
| - | </ | ||
| - | * 通常はインストール時に認証鍵が生成されるが、されない場合は以下のコマンドをマスターノードでのみ行う (マスターノードの認証鍵を計算機ノードが参照するため)。\\ <code bash> | ||
| - | $ sudo create-munge-key | ||
| - | </ | ||
| - | - インストール時にスタートアップの問題で失敗するので、修正する。\\ <code bash> | ||
| - | $ sudo systemctl edit --system --full munge | ||
| - | </ | ||
| - | - '' | ||
| - | - 再度インストールする。\\ <code bash> | ||
| - | $ sudo apt-get install -f | ||
| - | </ | ||
| - | - slurm を https:// | ||
| - | * ここでは、'' | ||
| - | * ダウンロードしたファイルは ''/ | ||
| - | - 展開する。\\ <code bash> | ||
| - | $ cd /tmp | ||
| - | $ tar axvf slurm-17.02.1-2.tar.gz | ||
| - | </ | ||
| - | - インストールする。\\ <code bash> | ||
| - | $ cd slurm-17.02-1.2 | ||
| - | $ ./configure | ||
| - | $ make -j 4 | ||
| - | $ sudo make install | ||
| - | </ | ||
| - | - 設定ファイルをコピーする。\\ <code bash> | ||
| - | $ sudo cp etc/ | ||
| - | </ | ||
| - | - 設定ファイルを編集する。 | ||
| - | * 詳しくはシステムの設定を参照 | ||
| - | - 必要なディレクトリを作成する。\\ <code bash> | ||
| - | $ sudo mkdir -p / | ||
| - | $ sudo mkdir -p / | ||
| - | </ | ||
| - | * '' | ||
| - | * 設定を容易に行う別の方法として、'' | ||
| - | - 自動起動するようにする。 | ||
| - | * マスターノード (マスターノードで計算させない場合は '' | ||
| - | $ sudo cp etc/ | ||
| - | $ sudo cp etc/ | ||
| - | $ sudo systemctl enable slurmctld.service | ||
| - | $ sudo systemctl enable slurmd.service | ||
| - | </ | ||
| - | * 計算ノード\\ <code bash> | ||
| - | $ sudo cp etc/ | ||
| - | $ sudo systemctl enable slurmd.service | ||
| - | </ | ||
| - | - サービスを起動する。 | ||
| - | * マスターノード (マスターノードで計算させない場合は '' | ||
| - | $ sudo systemctl start slurmctld.service | ||
| - | $ sudo systemctl start slurmd.service | ||
| - | </ | ||
| - | * 計算ノード\\ <code bash> | ||
| - | $ sudo systemctl start slurmd.service | ||
| - | </ | ||
| - | - 起動しているかを確認する。 | ||
| - | * マスターノード | ||
| - | $ sudo systemctl status slurmctld.service | ||
| - | $ sudo systemctl status slurmd.service | ||
| - | </ | ||
| - | * 計算ノード\\ <code bash> | ||
| - | $ sudo systemctl status slurmd.service | ||
| - | </ | ||
| - | - ジョブを投入してテストする。\\ <code bash> | ||
| - | $ srun -l sleep 60 & | ||
| - | $ srun -l sleep 60 & | ||
| - | $ srun -l sleep 60 & | ||
| - | $ srun -l sleep 60 & | ||
| - | $ srun -l sleep 60 & | ||
| - | $ squeue | ||
| - | JOBID PARTITION | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | </ | ||
| - | |||
| - | ===== システムの設定 ===== | ||
| - | * マスターノード (master)、計算ノード (calc01, calc02, calc03) の例.\\ <code conf slurm.conf> | ||
| - | ControlMachine=master | ||
| - | ControlAddr=192.168.1.254 | ||
| - | : | ||
| - | SlurmUser=root | ||
| - | SlurmdUser=root | ||
| - | : | ||
| - | SelectType=select/ | ||
| - | SelectTypeParameters=CR_CPU | ||
| - | : | ||
| - | PreemptType=preempt/ | ||
| - | PreemptMode=SUSPEND, | ||
| - | : | ||
| - | # Node configuration | ||
| - | # Configure support for our four GPUs | ||
| - | GresTypes=gpu, | ||
| - | |||
| - | # COMPUTE NODES | ||
| - | NodeName=master | ||
| - | NodeName=calc01 | ||
| - | NodeName=calc02 | ||
| - | NodeName=calc03 | ||
| - | |||
| - | # Partition configuration | ||
| - | PartitionName=ALL | ||
| - | PartitionName=CPU1 | ||
| - | PartitionName=CPU2 | ||
| - | PartitionName=CPU3 | ||
| - | PartitionName=CPU1_h Nodes=master MaxTime=UNLIMITED PriorityTier=2 State=UP | ||
| - | PartitionName=CPU2_h Nodes=calc01 MaxTime=UNLIMITED PriorityTier=2 State=UP | ||
| - | PartitionName=CPU3_h Nodes=calc02, | ||
| - | </ | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * 1つ目のフィールド: | ||
| - | * 2つ目のフィールド: | ||
| - | * 3つ目のフィールド: | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * root や slurmUser に指定されているユーザは適用されない | ||
| - | * '' | ||
| - | * '' | ||
| - | * * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * 参考サイト: | ||
| - | * slurm.conf: [[https:// | ||
| - | * GPU: [[https:// | ||
| - | * 割り込み: | ||
| - | |||
| - | ===== トラブルシューティング ===== | ||
| - | ==== " | ||
| - | * 原因: プラグインが未ロードのために起こるエラー | ||
| - | * プラグインが必要な設定に書き換えた後、マスターノードのデーモン (slurmctl) をリロードしたが、計算ノードのデーモン (slurmd) をリロードしていない場合に起こる | ||
| - | * 解決法: slurmd をリロードする | ||
| - | * 参考サイト: | ||
| - | |||
| - | ==== 他のノードに計算が流れない ==== | ||
| - | * 原因: munge が通信の認証を担当しているため、認証キーの不一致やパーミッション・所有者が異なるため | ||
| - | * 解決法: | ||
| - | * 再度 /etc/munge 内の認証キーが同一か、パーミッション・所有者が適切に設定されているか確認する | ||
| - | * もしかしたら、初歩的にネットワークがつながってないってこともあるので、そっちも確認する | ||
| - | |||
| - | ==== ノードの状態が `drain` のままでジョブが実行されない ==== | ||
| - | * 原因: 設定の読み込みのタイミングが失敗して、リソースがジョブに対し少なすぎると認識されている (メモリの設定などが 1 のままになっているとか) | ||
| - | * 解決法: | ||
| - | * slurm デーモンを再起動させてみる\\ <code bash> | ||
| - | $ sudo service slurm restart | ||
| - | </ | ||
| - | * ノードの状態を強制的に変更する (詰まっているジョブを強制的に動かす)\\ <code bash> | ||
| - | $ sudo scontrol update nodename=NODENAME state=resume | ||
| - | </ | ||
| - | * '' | ||
| - | * 強制的に設定ファイルを読み込む\\ <code bash> | ||
| - | $ sudo scontrol reconfigure | ||
| - | </ | ||
| - | * 強制的に状態をクリアする\\ <code bash> | ||
| - | $ sudo service slurm stop | ||
| - | $ sudo service slurm startclean | ||
| - | </ | ||
| - | * 参考サイト: | ||
| - | |||
| - | ==== "sinfo -N" でノードがダウンした状態になる ==== | ||
| - | * 原因1: ネットワークが繋がっていない | ||
| - | * 解決方法: | ||
| - | * 原因2: ダウンしたノードの ''/ | ||
| - | * 解決方法: | ||
| - | * 参考サイト | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * 原因3: 上記解決法を試した後でも down のままになっていることがあるが、これは sinfo のキャッシュが更新されていないことがある。 | ||
| - | * 解決方法: | ||
| - | |||
| - | ==== 起動しない ==== | ||
| - | * エラー: '' | ||
| - | * 原因: Ubuntu 18.04 + Slurm 17.11.8 以降で、'' | ||
| - | * 解決方法: | ||
| - | |||
| - | ===== 参考サイト ===== | ||
| - | ==== 導入方法 ==== | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | |||
| - | |||
| - | |||
| - | {{tag> | ||