Slurm source code should be downloaded and recompiled including the configuration flag – with-nvml.
As an example, using rpmbuild mechanism for recompiling and generating rpms, this is our current method. Be aware that the compile works only if it finds the prerequisites needed for a given option on the host. (* e.g. to recompile this –with-nvml you should do so on a functioning gpu host *)
========
export VERSION=23.11.5
wget https://download.schedmd.com/slurm/slurm-$VERSION.tar.bz2
#
rpmbuild --define="_with_nvml --with-nvml=/usr" --define="_with_pam --with-pam=/usr" --define="_with_pmix --with-pmix=/usr" --define="_with_hdf5 --without-hdf5" --define="_with_ofed --without-ofed" --define="_with_http_parser --with-http-parser=/usr/lib64" --define="_with_yaml --define="_with_jwt --define="_with_slurmrestd --with-slurmrestd=1" -ta slurm-$VERSION.tar.bz2 > build.log-$VERSION-`date +%F` 2>&1
This is a list of packages we ensure are installed on a given node when running this compile .
- pkgs:
- bzip2
- cuda-nvml-devel-12-2
- dbus-devel
- freeipmi
- freeipmi-devel
- gcc
- gtk2-devel
- hwloc-devel
- libjwt-devel
- libssh2-devel
- libyaml-devel
- lua-devel
- make
- mariadb-devel
- munge-devel
- munge-libs
- ncurses-devel
- numactl-devel
- openssl-devel
- pam-devel
- perl
- perl-ExtUtils-MakeMaker
- readline-devel
- rpm-build
- rpmdevtools
- rrdtool-devel
- http-parser-devel
- json-c-devel