各OS毎の対応(2022.12.18)

OS提供バージョンリポジトリなど
RockyLinux 922.05.6epel
RockyLinux 820.11.9epel
CentOS 720.11.9epel
Ubuntu 20.0419.05.5-1universe/admin
Ubuntu 22.0421.08.5-2universe/admin

起点を「/opt/slrum」にして設定ファイルも同じく「/opt/slurm/etc」に配置させ
この「/opt/slrum」を共有させればいいのかなと思うが、そうなるとパッケージを用意する必要になる. クラスターが単一OSなら. ヘテロOS環境なら既存のパッケージでいいのかも

っで作ってみた(ubuntuの計算ノードとかには使えないけど)
*ubuntuのパッケージ作成方法はよく分からないので、作ってないです. ubuntu系はソースから作成なのかも

作成方法はhttps://slurm.schedmd.com/quickstart_admin.htmlに従います.

まずはソースのtar.bz2を用意します

[root@slurm ~]# cat /etc/redhat-release
Rocky Linux release 8.6 (Green Obsidian)
 
[root@slurm ~]# git clone https://github.com/SchedMD/slurm.git
[root@slurm ~]# cd slurm/
[root@slurm slurm]# git tag |tail -n 3
slurm-22-05-6-1
slurm-22-05-7-1
start
[root@slurm slurm]#
[root@slurm slurm]# git checkout slurm-22-05-7-1
[root@slurm slurm]# git branch
* (HEAD detached at slurm-22-05-7-1)
  master
[root@slurm slurm]# cd ..
[root@slurm ~]# tar --exclude-vcs --transform 's/slurm/slurm-22.05.7/' -cvjf slurm-22.05.7.tar.bz2 slurm
 
[root@slurm ~]# tar tvf slurm-22.05.7.tar.bz2 | head -n 3
drwxr-xr-x root/root         0 2022-12-23 15:40 slurm-22.05.7/
-rw-r--r-- root/root       595 2022-12-23 15:39 slurm-22.05.7/.travis.yml
-rw-r--r-- root/root       119 2022-12-23 15:39 slurm-22.05.7/AUTHORS
[root@slurm ~]#

slurmに載せたい機能

slurmの運用で有効にさせたい機能があってここでは下記を有効にしてみた

  • pam
  • hwloc
  • freeipmi
  • pmix
  • nvml

他にもありましたが、numa, hdf5, ucx, x11, lua はら無効としました.
データベースでアカウント対応を行う「slurmdbd」は小規模なので要らないかなと思ったのですが、「mariadb-devel」は必要でした

っでこれら有効にしたい機能を実現させるために追加のパッケージを入れて置きます

dnf groupinstall "Development tools"
dnf install --enablerepo=devel,powertools munge-devel readline-devel pam-devel perl-ExtUtils-MakeMaker \
                            hwloc-devel mariadb-devel pmix-devel freeipmi-devel dbus-devel python3
 
bash ./cuda_12.0.0_525.60.13_linux.run  (「cuda-nvml-dev」のみインストール)

macroファイルの準備

slurm.specを直接いじらず設定ファイル(macro file)を作成します. これでslurm.specの情報を上書きできます

[root@slurm ~]# rpmbuild --version
RPM version 4.14.3
[root@slurm ~]# vi .rpmmacros
%_prefix /opt/slurm
%_slurm_sysconfdir %{_prefix}/etc
%_with_hwloc 1
%_with_pam 1
%_without_x11 1
%_with_pmix --with-pmix=/usr
%_with_nvml --with-nvml=/usr/local/cuda-12.0
%_with_freeipmi --with-freeipmi=/usr
[root@slurm ~]#

rpmbuildでパッケージを作る

rpmbuild -ta slurm-22.05.7.tar.bz2
 
(RockyLinux 9の「RPM version 4.16.1.3」なら .rpmmacros を別ファイルとして指定できる
rpmbuild -ta --load slurm.rpmmacros slurm-22.05.7.tar.bz2

作成されたrpmファイルは

[root@slurm ~]# ls -l rpmbuild/RPMS/x86_64/
total 22896
-rw-r--r--. 1 root root 18787504 Dec 24 06:00 slurm-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    20232 Dec 24 06:00 slurm-contribs-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    84176 Dec 24 06:00 slurm-devel-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    12908 Dec 24 06:00 slurm-example-configs-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   163764 Dec 24 06:00 slurm-libpmi-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    13096 Dec 24 06:00 slurm-openlava-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   175840 Dec 24 06:00 slurm-pam_slurm-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   833032 Dec 24 06:00 slurm-perlapi-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  1558356 Dec 24 06:00 slurm-slurmctld-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   776992 Dec 24 06:00 slurm-slurmd-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   857668 Dec 24 06:00 slurm-slurmdbd-22.05.7-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   141888 Dec 24 06:00 slurm-torque-22.05.7-1.el8.x86_64.rpm
[root@slurm ~]#

メモ

cuda環境のないところでrpmbuildすると「/usr/lib64/slurm/gpu_nvml.so」が用意されない.
これがないと「/etc/slurm/gres.conf」で「AutoDetect=nvml」が使えない.


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-12-24 (土) 06:01:01 (89d)