各OS毎の対応(2022.12.18)
OS | 提供バージョン | リポジトリなど |
RockyLinux 9 | 22.05.6 23.02.7 | epel rocky-release-hpc |
RockyLinux 8 | 20.11.9 22.05.11 23.02.7 | epel rocky-release-hpc rocky-release-hpc |
CentOS 7 | 20.11.9 | epel |
Ubuntu 20.04 | 19.05.5 | universe |
Ubuntu 22.04 | 21.08.5 | universe |
Ubuntu 24.04 | 23.11.4 | universe |
起点を「/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 9.4 (Blue Onyx)
[root@slurm ~]# git clone https://github.com/SchedMD/slurm.git
[root@slurm ~]# cd slurm/
[root@slurm slurm]# git tag | tail -n 3
slurm-24-05-2-1
slurm-24-05-3-1
start
[root@slurm slurm]#
[root@slurm slurm]# git checkout slurm-24-05-3-1
[root@slurm slurm]# git branch
* (HEAD detached at slurm-24-05-3-1)
master
[root@slurm slurm]# cd ..
[root@slurm ~]# tar --exclude-vcs --transform 's/slurm/slurm-24.05.3/' -cvjf slurm-24.05.3.tar.bz2 slurm
[root@slurm ~]# tar tvf slurm-24.05.3.tar.bz2 | head -n 3
drwxr-xr-x root/root 0 2024-10-05 05:19 slurm-24.05.3/
-rw-r--r-- root/root 119 2024-07-24 22:22 slurm-24.05.3/AUTHORS
-rw-r--r-- root/root 3624 2024-07-24 22:22 slurm-24.05.3/CONTRIBUTING.md
[root@slurm ~]#
slurmの運用で有効にさせたい機能があってここでは下記を有効にしてみた
他にもありましたが、numa, hdf5, ucx, lua はら無効としました.
データベースでアカウント対応を行う「slurmdbd」は小規模なので要らないかなと思ったのですが、「mariadb-devel」は必要でした
っでこれら有効にしたい機能を実現させるために追加のパッケージを入れて置きます
dnf groupinstall "Development tools"
dnf install --enablerepo=devel,epel munge-devel readline-devel pam-devel perl-ExtUtils-MakeMaker perl-interpreter perl-devel \
hwloc-devel mariadb-devel pmix-devel freeipmi-devel dbus-devel python3 json-c-devel lz4-devel librdkafka-devel \
libcurl-devel man2html-core http-parser-devel libyaml-devel libjwt-devel json-devel
dnf localinstall cuda-repo-rhel9-12-5-local-12.5.0_555.42.02-1.x86_64.rpm
dnf install cuda-nvml-devel-12-5
(centos7なら)
yum groupinstall "Development Tools"
yum install --enablerepo=epel munge-devel readline-devel pam-devel perl-ExtUtils-MakeMaker perl-interpreter perl-devel \
hwloc-devel mariadb-devel pmix-devel freeipmi-devel dbus-devel python3 json-c-devel lz4-devel librdkafka-devel \
libcurl-devel man2html-core http-parser-devel libyaml-devel libjwt-devel json-devel
numaはnumactl-devel、hdf5はhdf5-devel、ucxはucx-devel、luaはcompat-lua-develが必要
slurm.specを直接いじらず設定ファイル(macro file)を作成します. これでslurm.specの情報を上書きできます
[root@slurm ~]# rpmbuild --version
RPM version 4.16.1.3
[root@slurm ~]# vi slurm.rpmmacros
%_prefix /opt/slurm
%_slurm_sysconfdir %{_prefix}/etc
%_with_hwloc 1
%_with_pam 1 --with_pam_dir=/usr/lib64/security
%_with_x11 1
%_with_pmix --with-pmix=/usr
%_with_nvml --with-nvml=/usr/local/cuda-12.5
%_with_freeipmi --with-freeipmi=/usr
%_with_slurmrestd 1
[root@slurm ~]#
(centos7ではpmixのversionが古いのでpmixの項目を削除します)
x11は有効に
hdf5は「%_with_hdf5 1」、ucxは「%_with_ucx --with-ucx=/usr」、X11は環境がokなら有効になる. luaはパッケージがあればok
[root@slurm ~]# rpmbuild -ta --load slurm.rpmmacros slurm-24.05.3.tar.bz2
RockyLinux8とかCentOS7なら rpmbuild で「--load」が使えないので下記のようにします
cp slurm.rpmmacros .rpmmacros
rpmbuild -ta slurm-24.05.3.tar.bz2
rm -rf .rpmmacros
作成されたrpmファイルは
[root@slurm ~]# ls -l rpmbuild/RPMS/x86_64/
-rw-r--r--. 1 root root 18536697 Oct 5 05:26 slurm-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 19984 Oct 5 05:26 slurm-contribs-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 82383 Oct 5 05:26 slurm-devel-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 13404 Oct 5 05:26 slurm-example-configs-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 161936 Oct 5 05:26 slurm-libpmi-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 12960 Oct 5 05:26 slurm-openlava-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 150331 Oct 5 05:26 slurm-pam_slurm-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 833430 Oct 5 05:26 slurm-perlapi-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 100359 Oct 5 05:26 slurm-sackd-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 1598790 Oct 5 05:26 slurm-slurmctld-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 1003518 Oct 5 05:26 slurm-slurmd-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 914849 Oct 5 05:26 slurm-slurmdbd-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 212772 Oct 5 05:26 slurm-slurmrestd-24.05.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 132936 Oct 5 05:26 slurm-torque-24.05.3-1.el9.x86_64.rpm
[root@slurm ~]#
cudaライブラリ(cuda-nvml-devel)のないところでrpmbuildすると「/usr/lib64/slurm/gpu_nvml.so」が用意されない.
これがないと「/etc/slurm/gres.conf」で「AutoDetect=nvml」が使えない.
slurm-23.11から「sackd」が入ったみたい. mungeに代わる認証系パッケージ