「srun -n 1 --pty xterm」と slurm 経由でX11アプリを動かすためには?
[illya@slurm-client ~]$ srun -n 1 --pty xterm
srun: error: n2: task 0: Exited with exit code 1
/usr/bin/xterm: Xt error: Can't open display: localhost:10.0
[illya@slurm-client ~]$
ちなみに普通に計算ノードにSSHでアクセスして xterm の表示はできています
[illya@slurm-client ~]$ ssh n2 -X
Last login: Sun Sep 17 02:15:36 2023 from 192.168.0.20
[illya@n2 ~]$ xterm
slurm-17.11以降は「slurm.conf」に「PrologFlags=x11」を加えれば slurm 経由で X11アプリが使えるようになりました. 「--x11」オプションが必要です
[illya@slurm-client ~]$ srun -n 1 --x11 --pty xterm
っで立ち上がった xterm で phenix や ccp4i を起動させる. 一応これでログインノードで立てなくてもいいかなとなる.
本家様https://github.com/hautreux/slurm-spank-x11
https://slurm.schedmd.com/faq.html#x11
rpmファイルを作ってみます
[root@slurm ~]# git clone https://github.com/hautreux/slurm-spank-x11
[root@slurm ~]# tar --exclude-vcs --transform 's/slurm-spank-x11/slurm-spank-x11-0.2.5/' -cvjf slurm-spank-x11-0.2.5.tar.gz slurm-spank-x11
[root@slurm ~]# mkdir rpmbuild/{SPECS,SOURCES}
[root@slurm ~]# cp slurm-spank-x11-0.2.5.tar.gz rpmbuild/SOURCES/
[root@slurm ~]# cp slurm-spank-x11/slurm-spank-x11.spec rpmbuild/SPECS/
[root@slurm ~]# vi rpmbuild/SPECS/slurm-spank-x11.spec
specファイルを修正します
|
その上で
[root@slurm ~]# cat slurm.rpmmacros
%_prefix /opt/slurm
%_slurm_sysconfdir %{_prefix}/etc
%_with_hwloc 1
%_with_pam 1
%_with_x11 1
%_with_pmix --with-pmix=/usr
%_with_nvml --with-nvml=/usr/local/cuda-12.2
%_with_freeipmi --with-freeipmi=/usr
[root@slurm ~]# rpmbuild --load slurm.rpmmacros -bb rpmbuild/SPECS/slurm-spank-x11.spec
slurm/rpmbuildで使った slurm.rpmmacros を使ってます
作った中身の確認
[root@slurm ~]# rpm -qpli ./rpmbuild/RPMS/x86_64/slurm-spank-x11-0.2.5-1.x86_64.rpm
Name : slurm-spank-x11
Version : 0.2.5
Release : 1
Architecture: x86_64
Install Date: (not installed)
Group : System Environment/Base
Size : 41401
License : GPL
Signature : (none)
Source RPM : slurm-spank-x11-0.2.5-1.src.rpm
Build Date : Sun 17 Sep 2023 04:16:59 AM JST
Build Host : slurm
Summary : Slurm spank plugin for X11 display support
Description :
x11 SLURM spank plugin enables to export X11 display on a part or all of the
allocated nodes of SLURM jobs using openSSH.
If openSSH is properly configured, users can use this feature transparently,
otherwise they will need to enter as many passwords as connections to establish.
/opt/slurm/etc/slurm/plugstack.conf.d/x11.conf.example
/opt/slurm/lib64/slurm/x11.so
/opt/slurm/libexec/slurm-spank-x11
/usr/lib/.build-id
/usr/lib/.build-id/cc
/usr/lib/.build-id/cc/5053b7eeb2d30032260bf73d76a87fcbec042b
/usr/lib/.build-id/d0
/usr/lib/.build-id/d0/1435b8161ea494131d9490f1290144c847c6a2
[root@slurm ~]#
これをインストールします
[root@slurm ~]# dnf localinstall ./rpmbuild/RPMS/x86_64/slurm-spank-x11-0.2.5-1.x86_64.rpm
「error: X11 forwarding not built in, cannot enable.」と言われる. これはslurm自体がX11無効なため
Phenix#l39f486dのようにpheixを含むSingularityイメージを作って
[illya@slurm ~]$ srun --x11 --pty singularity run ubuntu-jammy.sif phenix
で起動できる. もちろんphenixは slurm で割り当てられたマシンで動いてます. ログインノードで計算はしないです