ここでは, 世界中の皆さんがよく使っているらしい手:
- どっちかを, デフォルト以外の場所にインストールする
ではいってみよう.
SLURM-SERVERインストール
make munge.key.create make slurm-server openssl完了しました! munge完了しました! mungeExecuting: /usr/lib/systemd/systemd-sysv-install enable munge mungeまんげOK python-devel完了しました! boostSubmodule path 'tools/quickbook': checked out '944f760cc2decfe745540f0 boostboost ...failed updating 1 target... boostboost ...skipped 14 targets... boost...updated 1166 targets... boostぶうすと: いくつかびるどできん openpmix./configure --prefix=/usr/local/pmix openpmixぴみくすOK! maria-devell完了しました! httpd完了しました! mailx完了しました! readline完了しました! libcurl完了しました! slurmlUsing python3 as default slurml./configure --prefix=/usr/local --with-munge --with-pmix=/usr/local/pmix slurmlconfig.status: executing libtool commands slurmlmake[1]: ディレクトリ '/local/packages/thirdparty/CLUSTER/BASE/slurm' から出 slurmlすらるむOK gfortran完了しました! ←もう誰も使わねえけど一応記念に cmake完了しました! ompimake[1]: ディレクトリ '/local/packages/thirdparty/CLUSTER/BASE/openpmix' から出ます ompi./configure --prefix=/usr/local --with-slurm --with-pmix=/usr/local/pmix --disable-mca-dso --with-libevent ompiえむぴーあいOK boost-mpi...found 37811 targets... boost-mpiぶうすとえむぴあいOK slurm-serverConfigure SlurmDbd... slurm-serverFirewallD is not running slurm-serverConfigure SlurmCtld... slurm-serverFirewallD is not running slurm-serverジョブかきん・かんりサーバOK
Boostがこけてるが, まあ, だいたい普通にいくつかビルドできないから,気にもならねえ.数十個くらいはエラーしても気がつかねえだろう.使わないんだったらカンケーねーよ. スキップしたのはOMPI周りだろうな.
この段階でサポートされている並列計算を見てみる:
srun --mpi=list
srun: MPI types are...
srun: none
srun: openmpi
srun: pmi2
srun: pmix
srun: pmix_v3
まあええけど, この openmpi って,なにをどうするつもりなんだろうね.
SLURM-CLIENTインストール
make munge.key.copy あんたのRMSサーバー[10.249.229.225]のキーをコピーします scp 10.249.229.225:/etc/munge/munge.key rc/ Password:いつもの make slurm-client openssl完了しました! munge完了しました! mungeまんげOK maria完了しました! httpd完了しました! mailx完了しました! readline完了しました! pam完了しました! libcurl完了しました! python-devel完了しました! boost boost...found 49612 targets... boostぶうすとOK! openpmix./configure --prefix=/usr/local --with-munge --with-pmix=/usr/local/pmix openpmixぴみくすOK! slurmCloning into 'slurm'... slurmSwitched to a new branch 'slurm-19-05-4-1' slurmUsing python3 as default slurm./configure --prefix=/usr/local --with-munge --with-pmix=/usr/local/pmix slurmlconfig.status: executing libtool commands slurmlmake[1]: ディレクトリ '/local/packages/thirdparty/CLUSTER/BASE/slurm' から出ます slurmlmake[1]: ディレクトリ '/local/packages/thirdparty/CLUSTER/BASE/slurm' から出ます slurmlすらるむOK gfortran完了しました! cmake完了しました! ompi ompi./configure --prefix=/usr/local --with-slurm --with-pmix=/usr/local/pmix --disable-mca-dso --with-libevent ompi ompiえむぴーあいOK boost-mpi...found 29443 targets... boost-mpiぶうすとえむぴあいOK slurm-clientFirewallD is not running slurm-clientじっこーのーどOK Please start slurmd by [ systemctl start slumd ] AFTER YOU CONFIRM slurmd.conf or you can use [ smgr ] to apply [c] command
できたー.では起動してみる
# smgr Command:c 計算デーモンちゃんを再起動 SUCCESS ● slurmd.service - Slurm node daemon Loaded: loaded (/usr/lib/systemd/system/slurmd.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-12-21 14:02:19 JST; 12ms ago Process: 19164 ExecStart=/usr/local/sbin/slurmd $SLURMD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 19168 (slurmd) Tasks: 1 Memory: 1.4M CGroup: /system.slice/slurmd.service └─19168 /usr/local/sbin/slurmd -L/var/log/slurmd 12月 21 14:02:19 h223.229.249.10.1016485.vlan.kuins.net systemd[1]: Starting Slurm node daemon... 12月 21 14:02:19 h223.229.249.10.1016485.vlan.kuins.net systemd[1]: slurmd.service: Can't open PID file /var/run/slurmd.pid (yet?) after start: No such file or directory ← このエラー,消せない...OSのバグでは?! 12月 21 14:02:19 h223.229.249.10.1016485.vlan.kuins.net systemd[1]: Started Slurm node daemon. Command:l ib2007-1 DOWN 2(cores)x1(threads) 3935(MB) Not responding ib2007-2 DOWN 2(cores)x1(threads) 3935(MB) aho ib2007-3 IDLE 2(cores)x1(threads) 3935(MB) ib2007-4 DOWN 2(cores)x1(threads) 3935(MB) sabori Command:on ib2007-1 scontrol update NodeName=ib2007-1 State=idle Command:l ib2007-1 IDLE 2(cores)x1(threads) 3935(MB) ib2007-2 DOWN 2(cores)x1(threads) 3935(MB) aho ib2007-3 IDLE 2(cores)x1(threads) 3935(MB) ib2007-4 DOWN 2(cores)x1(threads) 3935(MB) sabori Command:q
試し斬り
では手動実行.
mpic++ boke.cpp -L/usr/local/lib -lboost_mpi -o boke
mpirun -np 2 ./boke
Hello, Boost.MPI CPU-1 on h225.229.249.10.1016485.vlan.kuins.net
Hello, Boost.MPI CPU-0 on h225.229.249.10.1016485.vlan.kuins.net
まずは, ローカルでmpirunが可能である. ほんではsrunを試してみる.
srun -n 2 -p F ./boke Hello, Boost.MPI CPU-0 on h225.229.249.10.1016485.vlan.kuins.net Hello, Boost.MPI CPU-1 on h225.229.249.10.1016485.vlan.kuins.net sl JobID User Partition JobName Timelimit Elapsed State MaxRSS MaxVMSize NodeList ------------ --------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- --------------- 20 sugimoto F boke 03:05:00 00:00:01 COMPLETED 0 0.38G ib2007-3
srunはあくまでもジョブをサブミットするものである. これは srun -n 2 -p F で起動したので, F-ジョブ, 2タスクを指定しているので, そのように実行されるわけだ.
さて, 複数の計算ノードを利用してみよう.
っと.ここでトラブルだ.再起動したマシンで, mungeが起動しない.なぜだ? /var/run/munge が消えているためだ./etc/tmpfiles.dの設定不良だ.訂正して再起動.
munged: Error: Pidfile is insecure: group-writable permissions without sticky bit set on "/run/munge"
なんと, /run のフォルダーはうるさいのね・・・ではchmod 700で.
munged: Error: Socket is inaccessible: execute permissions for all required on "/run/munge"
ああうるさい.じゃ755でいいですか?良いようだな.
ところが,計算ノードではうまくいくが,管理サーバーではダメだ.その理由は systemctl status systemd-tmpfiles-setup でわかる:
12月 21 18:06:18 h225.229.249.10.1016485.vlan.kuins.net systemd-tmpfiles[563]: [/etc/tmpfiles.d/munge.conf:1] Unknown user 'munge'.
12月 21 18:06:18 h225.229.249.10.1016485.vlan.kuins.net systemd-tmpfiles[563]: [/etc/tmpfiles.d/slurm.conf:1] Unknown group 'slurm'.
なんだって.systemd-tmpfiles-setup がIPAサーバー稼働前に起動するために, munge, slurm ユーザーがわからないのだ.どうするんだよこれどうしたらいいんだよ.これ,結構始めの頃に起動するサービスであるので・・・これをIPA起動した後に持ってくることは非常に困難だろうな.
だから, ここにあるみたいに, unitファイルでフォルダーを管理し,SSSDの後ろに来るように設定するしかないのではないだろうか.
違うな.slurm, mungeといったシステムユーザーをFreeIPAで管理するから,こんなことになるのである.これらのIDでログインすることもないし,管理する必要もない.存在すれば良い. だから, インストール時に useradd か何かで, 全マシンに作成すればよかったのだ.
というわけで,またまた,やり直す.今回はUIDが間違っているので,全て, 全面削除で再インストールだ.
MUNGEについて
ガイドに従ってMungeはインストールしてみたが, 後から, OS標準のPackageがあることに気づいたわけだ. では, そもそも, インストールすると何が起こるのかを調べてみる.
- Mungeをインストールすると,
- User munge UID 386 Group munge GID 386 が自動的に作成される.ユーザーが作る必要はない.
- 一時ファイルは /usr/lib/tmpfiles.d/munge.conf が自動的に作成される. ユーザーが心配する必要はない.
- システムで作成された設定を一生懸命破壊していたことになる.
- munge.keyを入れるべき /etc/munge フォルダーも自動的に作成される.
- だが, 肝心のmunge.keyは作成されていない
- よって, 起動しようとしてこけた状態になる.
なるほど.これはインストールスクリプトを訂正してなんとかできるね.
SLURMについて
こちらはPackageがないのでユーザーを作成する必要がある. これもスクリプトを訂正だ