<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> and the NVIDIA Management Library (NVML) is installed on the node and <br>
> was found during Slurm configuration<br>
<br>
That's the key phrase - when whoever compiled Slurm ran ./configure <br>
*before* compilation it was on a system without the nvidia libraries and <br>
headers present, so Slurm could not compile that support in.<br>
<br>
You'll need to redo the build on a system with the nvidia libraries and <br>
headers in order for this to work.</blockquote></div></div></blockquote><div><br></div><div>As I wrote we use Bright Cluster on CentOS 7.7. So we just follow <a href="https://support.brightcomputing.com/manuals/8.2/admin-manual.pdf#subsection.7.5.1" target="_blank">their instructions</a> to use yum install slurm20, here they show Slurm 19 but it's the same for 20:</div><div>Example<br><font face="monospace">[root@bright82 ~]# rpm -qa | grep slurm | xargs -p rpm -e<br>[root@bright82 ~]# rpm -qa -r /cm/images/default-image |grep slurm |xargs -p rpm -r /cm/images/default-image -e<br>[root@bright82 ~]# yum install slurm19-client slurm19-slurmdbd slurm19-perlapi slurm19-contribs slurm19<br>[root@bright82 ~]# yum install --installroot=/cm/images/default-image slurm19-client</font><br>If either slurm or slurm19 is installed, then the administrator can run wlm-setup using the workload manager name slurm—that is without the 19 suffix–to set up Slurm. The roles at node level, or category level—slurmserver and slurmclient—work with either Slurm version.<br>Configuring Slurm<br>After package setup is done with wlm-setup (section 7.3), Slurm software components are installed in <font face="monospace">/cm/shared/apps/slurm/current.</font><br>Slurm clients and servers can be configured to some extent via role assignment (sections 7.4.1 and 7.4.2). Using cmsh, advanced option parameters can be set under the slurmclient role:<br>For example, the number of cores per socket can be set:<br>Example<br><font face="monospace">[bright82->category[default]->roles[slurmclient]]% set corespersocket 2<br>[bright82->category*[default*]->roles*[slurmclient*]]% commit</font><br>In order to configure generic resources, the genericresources mode can be used to set a list of objects. Each object then represents one generic resource available on nodes. Each value of name in genericresources must already be defined in the list of GresTypes. The list of GresTypes is defined in the slurmserver role. Several generic resources entries can have the same value for name (for example gpu), but must have a unique alias. The alias is a string that is used to manage the resource entry in cmsh or in Bright View. The string is enclosed in square brackets in cmsh, and is used instead of the name for the object. The alias does not affect Slurm configuration.<br><br>For example, to add two GPUs for all the nodes in the default category which are of type k20xm, and to assign them to different CPU cores, the following cmsh commands can be run:<br>Example<br><font face="monospace">[bright82]% category use default<br>[bright82->category[default]]% roles<br>[bright82->category[default]->roles]% use slurmclient<br>[...[slurmclient]]% genericresources<br>[...[slurmclient]->genericresources]% add gpu0<br>[...[slurmclient*]->genericresources*[gpu0*]]% set name gpu<br>[...[slurmclient*]->genericresources*[gpu0*]]% set file /dev/nvidia0<br>[...[slurmclient*]->genericresources*[gpu0*]]% set cores 0-7<br>[...[slurmclient*]->genericresources*[gpu0*]]% set type k20xm<br>[...[slurmclient*]->genericresources*[gpu0*]]% add gpu1<br>[...[slurmclient*]->genericresources*[gpu1*]]% set name gpu<br>[...[slurmclient*]->genericresources*[gpu1*]]% set file /dev/nvidia1<br class="gmail-Apple-interchange-newline"></font></div><div><font face="monospace"> </font></div></div></div>