SLURMのX11サポートしたコンパイルを検討
| 登録日 | :2024/11/23 19:58 |
|---|---|
| カテゴリ | :SLURM |
RockyLinuxのマシンにX11フォワーディングを有効にして機能する形でインストールしたい。
そのためには、まずX11をサポートする状態でのビルドが必要となりそう。
1 ビルド環境の確認
RockyLinuxの場合は、libssh-develをインストールしておく必要がると思われる。
[root@rpmbuild ~]# dnf search libssh-devel
メタデータの期限切れの最終確認: 0:04:49 前の 2024年11月23日 19時51分38秒 に実施しました。
================================== 名前 完全一致: libssh-devel ===================================
libssh-devel.i686 : Development files for libssh
libssh-devel.x86_64 : Development files for libssh
ちなみに、libss2-develはRockyLinuxのパッケージに用意されていなかった
[root@rpmbuild ~]# dnf search libssh2-devel
メタデータの期限切れの最終確認: 0:06:16 前の 2024年11月23日 19時51分38秒 に実施しました。
一致する項目はありませんでした。
[root@rpmbuild ~]#
2. libssh-develのインストール
libssh-develをインストールします。
[root@rpmbuild download]# sudo dnf install libssh-devel | tee libssh-devel-install.20241123.log
メタデータの期限切れの最終確認: 0:13:54 前の 2024年11月23日 19時51分38秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
libssh-devel x86_64 0.9.6-14.el8 appstream 440 k
アップグレード:
libssh x86_64 0.9.6-14.el8 baseos 219 k
libssh-config noarch 0.9.6-14.el8 baseos 20 k
依存関係のインストール:
cmake-filesystem x86_64 3.26.5-2.el8 appstream 44 k
トランザクションの概要
================================================================================
インストール 2 パッケージ
アップグレード 2 パッケージ
ダウンロードサイズの合計: 723 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): cmake-filesystem-3.26.5-2.el8.x86_64.rpm 62 kB/s | 44 kB 00:00
(2/4): libssh-config-0.9.6-14.el8.noarch.rpm 157 kB/s | 20 kB 00:00
(3/4): libssh-0.9.6-14.el8.x86_64.rpm 195 kB/s | 219 kB 00:01
(4/4): libssh-devel-0.9.6-14.el8.x86_64.rpm 289 kB/s | 440 kB 00:01
--------------------------------------------------------------------------------
合計 253 kB/s | 723 kB 00:02
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
アップグレード中 : libssh-config-0.9.6-14.el8.noarch 1/6
アップグレード中 : libssh-0.9.6-14.el8.x86_64 2/6
インストール中 : cmake-filesystem-3.26.5-2.el8.x86_64 3/6
インストール中 : libssh-devel-0.9.6-14.el8.x86_64 4/6
整理 : libssh-0.9.6-6.el8.x86_64 5/6
整理 : libssh-config-0.9.6-6.el8.noarch 6/6
scriptletの実行中: libssh-config-0.9.6-6.el8.noarch 6/6
検証 : cmake-filesystem-3.26.5-2.el8.x86_64 1/6
検証 : libssh-devel-0.9.6-14.el8.x86_64 2/6
検証 : libssh-0.9.6-14.el8.x86_64 3/6
検証 : libssh-0.9.6-6.el8.x86_64 4/6
検証 : libssh-config-0.9.6-14.el8.noarch 5/6
検証 : libssh-config-0.9.6-6.el8.noarch 6/6
アップグレード済み:
libssh-0.9.6-14.el8.x86_64 libssh-config-0.9.6-14.el8.noarch
インストール済み:
cmake-filesystem-3.26.5-2.el8.x86_64 libssh-devel-0.9.6-14.el8.x86_64
完了しました!
[root@rpmbuild download]# ls
3. slurmを再ビルドしてみます。
※ビルド手順についての詳細はいかにまとめていま。
https://nonoco.believeriver.site/detail_mark/206/
rpmbuild -ta slurm-21.08.8-2.tar.bz2 2>&1 | tee rpmbuild-slurm.log
実行中のログの確認
[root@rpmbuild slurm]# cat rpmbuild-slurm.log.20241123_wih_libssh-devel | grep x11_forwa
-rw-r--r-- 1000/1000 8811 2022-05-06 05:07 slurm-21.08.8-2/src/slurmd/slurmstepd/x11_forwarding.c
-rw-r--r-- 1000/1000 2191 2022-05-06 05:07 slurm-21.08.8-2/src/slurmd/slurmstepd/x11_forwarding.h
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../slurm -I../../.. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -Wl,-z,lazy -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -pthread -ggdb3 -Wall -g -O1 -fno-strict-aliasing -c -o x11_forwarding.o x11_forwarding.c
/bin/sh ../../../libtool --tag=CC --mode=link gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -Wl,-z,lazy -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -pthread -ggdb3 -Wall -g -O1 -fno-strict-aliasing -export-dynamic -Wl,-z,relro -Wl,-z,lazy -o slurmstepd container.o slurmstepd.o mgr.o task.o slurmstepd_job.o io.o ulimits.o pdebug.o pam_ses.o read_oci_conf.o req.o multi_prog.o step_terminate_monitor.o x11_forwarding.o ../common/libslurmd_common.o -Wl,-rpath=/usr/lib64/slurm -L../../../src/api/.libs -lslurmfull -ldl -lpam -lpam_misc -lutil -lm -lresolv
libtool: link: gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -Wl,-z -Wl,lazy -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -pthread -ggdb3 -Wall -g -O1 -fno-strict-aliasing -Wl,-z -Wl,relro -Wl,-z -Wl,lazy -o .libs/slurmstepd container.o slurmstepd.o mgr.o task.o slurmstepd_job.o io.o ulimits.o pdebug.o pam_ses.o read_oci_conf.o req.o multi_prog.o step_terminate_monitor.o x11_forwarding.o ../common/libslurmd_common.o -Wl,-rpath=/usr/lib64/slurm -Wl,--export-dynamic -L../../../src/api/.libs /root/rpmbuild/BUILD/slurm-21.08.8-2/src/api/.libs/libslurmfull.so -ldl -lpam -lpam_misc -lutil -lm -lresolv -pthread -Wl,-rpath -Wl,/usr/lib64/slurm
/root/rpmbuild/BUILD/slurm-21.08.8-2/config.log にてコンパイルオプションでX11を有効にしていることを確認。
[root@rpmbuild slurm-21.08.8-2]# cat config.log | grep X11
configure:22331: checking whether Slurm internal X11 support is enabled
configure:22346: result:
| #define WITH_SLURM_X11 1
| #define WITH_SLURM_X11 1
| #define WITH_SLURM_X11 1
#define WITH_SLURM_X11 1
resultもエラーなし。
X11に関するWarningも出ていないようである。
[root@rpmbuild slurm-21.08.8-2]# cat config.log | grep WARNING
configure:18844: WARNING: unable to locate NUMA memory affinity functions
configure:19521: WARNING: unable to locate json parser library
configure:19625: WARNING: unable to locate jwt library
configure:19718: WARNING: unable to locate HTTP Parser library
configure:19810: WARNING: unable to locate libyaml parser library
configure:20723: WARNING: unable to locate ofed installation
configure:20881: WARNING:
configure:21249: WARNING: unable to locate working lz4 installation
configure:21329: WARNING: unable to locate hwloc installation
configure:21508: WARNING: unable to locate libnvidia-ml.so and/or nvml.h
configure:21665: WARNING: unable to locate librocm_smi64.so and/or rocm_smi.h
configure:21952: WARNING: unable to locate pmix installation
configure:22071: WARNING: unable to locate freeipmi installation (libipmonitoring/libfreeipmi
configure:22166: WARNING: unable to locate rrdtool installation
configure:23432: WARNING: cannot build sview without gtk library
configure:23698: WARNING: unable to locate DataWarp installation
configure:24285: WARNING: unable to locate netloc installation
configure:24518: WARNING: unable to locate lua package
configure:24585: WARNING: unable to build man page html files without man2html
configure:25314: WARNING: unable to locate/link against libcurl-devel installation
[root@rpmbuild slurm-21.08.8-2]#
Appendix 1
X11をサポートしていないとき。
configure: WARNING: unable to locate libssh2 installation
configure: WARNING: Slurm internal X11 support disabled
srun --x11 xterm
"unrecognized option '--x11'" というエラーが表示される場合、X11サポートが無効です
Appendix 2
libssh-develがない状態でコンパイルしたときも、実は問題なかった模様
[root@rpmbuild slurm-21.08.8-2]# pwd
/root/rpmbuild.bak1/BUILD/slurm-21.08.8-2
configure:22331: checking whether Slurm internal X11 support is enabled
configure:22346: result:
X11サポートに関するエラーも出ていない模様
[root@rpmbuild slurm-21.08.8-2]# cat config.log | grep WARNING
configure:18844: WARNING: unable to locate NUMA memory affinity functions
configure:19521: WARNING: unable to locate json parser library
configure:19625: WARNING: unable to locate jwt library
configure:19718: WARNING: unable to locate HTTP Parser library
configure:19810: WARNING: unable to locate libyaml parser library
configure:20723: WARNING: unable to locate ofed installation
configure:20881: WARNING:
configure:21249: WARNING: unable to locate working lz4 installation
configure:21329: WARNING: unable to locate hwloc installation
configure:21508: WARNING: unable to locate libnvidia-ml.so and/or nvml.h
configure:21665: WARNING: unable to locate librocm_smi64.so and/or rocm_smi.h
configure:21952: WARNING: unable to locate pmix installation
configure:22071: WARNING: unable to locate freeipmi installation (libipmonitoring/libfreeipmi
configure:22166: WARNING: unable to locate rrdtool installation
configure:23432: WARNING: cannot build sview without gtk library
configure:23698: WARNING: unable to locate DataWarp installation
configure:24285: WARNING: unable to locate netloc installation
configure:24518: WARNING: unable to locate lua package
configure:24585: WARNING: unable to build man page html files without man2html
configure:25314: WARNING: unable to locate/link against libcurl-devel installation
[root@rpmbuild slurm-21.08.8-2]#
Appendix 3
- libssh-develがある環境でコンパイルしたときのsrun、salloc挙動
結局、srun --helpでは、--x11についての説明が出てこない。そういうものなのか。
[root@compute02 slurm]# srun --x11 xclock
srun: error: No DISPLAY variable set, cannot setup x11 forwarding.
[root@compute02 slurm]# salloc --x11
salloc: error: No DISPLAY variable set, cannot setup x11 forwarding.
[root@compute02 slurm]#
- libssh-develなしでコンパイルしたslurmのsrun, salloc挙動
[root@compute01 ~]# srun --x11 xclock
srun: error: No DISPLAY variable set, cannot setup x11 forwarding.
[root@compute01 ~]# salloc --x11
salloc: error: No DISPLAY variable set, cannot setup x11 forwarding.
変化がなかったので、関係ないのか。
libssh-develがない状態で作成したslurmでも、x11をサポートしているような挙動である。
「"unrecognized option '--x11'" 」というエラーは出ていない。