Sites installing the Slurm RPM packages on CentOS 7, RHEL 7, and other Systemd-based systems will experience a bug in the start-up of the Slurm daemons. Several sites have made the same discovery, but I would like to make all affected sites aware of the problem and a suggested workaround.

We discovered that the slurmd daemon didn't set the configured LimitMEMLOCK ulimits, causing failures in jobs using Infiniband and OmniPath fabrics. This was tracked down to slurmd being started in error by the System V style init-script /etc/init.d/slurm. The correct behavior on Systemd-based systems is to start the slurmd service using the /usr/lib/systemd/system/slurmd.service as installed by the slurm RPM package.

The best workaround we have come up with for CentOS/RHEL 7 is to completely disable the slurm init-script, which was inadvertently installed, as follows:

chkconfig --del slurm
rm -f /etc/init.d/slurm

This must be repeated every time Slurm is updated.

You must subsequently ensure that the Slurm services are started correctly using systemctl on the master, database, and compute nodes. The slurmd.service file correctly sets the ulimits. We have some notes about this in our Wiki: https://wiki.fysik.dtu.dk/niflheim/Slurm_configuration#starting-slurm-daemons-at-boot-time

The above bug is due to the slurm.spec file inadvertently configuring the init-script in the post-install phase, and it has been reported in https://bugs.schedmd.com/show_bug.cgi?id=3371. It is expected to be resolved in Slurm 17.11.

Ole Holm Nielsen
Technical University of Denmark

Reply via email to