メインコンテンツに移動

始動テスト5

ここでは, 世界中の皆さんがよく使っているらしい手:

  • どっちかを, デフォルト以外の場所にインストールする

ではいってみよう.

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がないのでユーザーを作成する必要がある. これもスクリプトを訂正だ