1. Install Slurm Packages
1.1. By Package Manager
Enable repo “PowerTools”:
$ sudo dnf config-manager --set-enabled powertools
For controller nodes:
$ sudo dnf install slurm-slurmctld
For worker nodes:
$ sudo dnf install slurm-slurmd
Tip
Install slurmctld or slurmd will install slurm as dependencies.
For client:
$ sudo dnf install slurm
For accounting:
$ sudo dnf install slurm-slurmdbd
For REST API:
$ sudo dnf install slurm-slurmrestd
For SPANK developing:
$ sudo dnf install slurm-devel
Package of slurm client is standalone on Ubuntu, install it with:
$ sudo apt satisfy slurm-client
The packages delivered are quite old.
1.2. Build from sources
Toolchains for building:
gcc version 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC)
GNU Make 4.3
rpmbuild 4.14.3
Download sources:
$ curl -LO https://download.schedmd.com/slurm/slurm-24.11.0.tar.bz2
See “Install C/C++ Development Environment” for how to install build tools on CentOS.
Install building dependencies:
$ sudo dnf install python3 hwloc-devel mariadb-devel pam-devel readline-devel libjwt-devel munge-devel perl-devel http-parser-devel json-c-devel
Build:
$ rpmbuild -ta slurm-24.11.0.tar.bz2 --with slurmrestd
If the node is not where the source was building (i.e. the devel packages were installed), install these runtime packages first:
$ sudo dnf install hwloc-devel libjwt mariadb-connector-c
Install the rpm packages, for example:
$ cd ~/rpmbuild/RPMS/x86_64/
$ sudo rpm -iv slurm-24.11.0-1.el8.x86_64.rpm
Tip
Packages installed by rpm can be uninstalled by dnf remove.
Toolchains for building:
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
GNU Make 4.3
debuild version 2.22.1ubuntu1
Download sources:
$ curl -LO https://download.schedmd.com/slurm/slurm-24.11.5.tar.bz2
See “Install C/C++ Development Environment” for how to install build tools on Ubuntu/Debian.
Install building dependencies:
$ sudo apt install libmunge-dev libmariadb-dev libhwloc-dev
Extract and build:
$ tar -C ~/workspace/devel/ -xjf slurm-24.11.5.tar.bz2
$ cd ~/workspace/devel/slurm-24.11.5/
$ sudo mk-build-deps -i debian/control
$ debuild -b -us -uc
$ cd ..
$ ls
slurm-24.11.5 slurm-smd-sackd-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-client-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-sackd_24.11.5-1_amd64.deb
slurm-smd-client_24.11.5-1_amd64.deb slurm-smd-slurmctld-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-slurmctld_24.11.5-1_amd64.deb
slurm-smd-dev_24.11.5-1_amd64.deb slurm-smd-slurmd-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-doc_24.11.5-1_all.deb slurm-smd-slurmd_24.11.5-1_amd64.deb
slurm-smd-libnss-slurm-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-slurmdbd-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-libnss-slurm_24.11.5-1_amd64.deb slurm-smd-slurmdbd_24.11.5-1_amd64.deb
slurm-smd-libpam-slurm-adopt-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-slurmrestd-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-libpam-slurm-adopt_24.11.5-1_amd64.deb slurm-smd-slurmrestd_24.11.5-1_amd64.deb
slurm-smd-libpmi0-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-sview-dbgsym_24.11.5-1_amd64.ddeb
slurm-smd-libpmi0_24.11.5-1_amd64.deb slurm-smd-sview_24.11.5-1_amd64.deb
slurm-smd-libpmi2-0-dbgsym_24.11.5-1_amd64.ddeb slurm-smd-torque_24.11.5-1_all.deb
slurm-smd-libpmi2-0_24.11.5-1_amd64.deb slurm-smd_24.11.5-1_amd64.build
slurm-smd-libslurm-perl-dbgsym_24.11.5-1_amd64.ddeb slurm-smd_24.11.5-1_amd64.buildinfo
slurm-smd-libslurm-perl_24.11.5-1_amd64.deb slurm-smd_24.11.5-1_amd64.changes
slurm-smd-openlava_24.11.5-1_all.deb slurm-smd_24.11.5-1_amd64.deb
Note
In order to use nvml, Slurm must be build with CUDA installed.
Install the packages. For controller nodes:
$ sudo dpkg -i slurm-smd_24.11.5-1_amd64.deb slurm-smd-slurmctld_24.11.5-1_amd64.deb
For worker nodes:
$ sudo dpkg -i slurm-smd_24.11.5-1_amd64.deb slurm-smd-slurmd_24.11.5-1_amd64.deb slurm-smd-client_24.11.5-1_amd64.deb
Important
Slurm client is required on computing nodes for it is common to using srun in slurm batch scripts.
Note
If the installation failed due to missing dependencies, fix them by:
$ sudo apt install -f
then re-run the installation command.