Use apt to install the necessary packages:
sudo apt install -y slurm-wlm slurm-wlm-doc
Load file:///usr/share/doc/slurm-wlm/html/configurator.html in a browser (or file://wsl%24/Ubuntu/usr/share/doc/slurm-wlm/html/configurator.html on WSL2), and:
- Set your machine's hostname in
SlurmctldHostandNodeName. - Set
CPUsas appropriate, and optionallySockets,CoresPerSocket, andThreadsPerCore. Use commandlscputo find what you have. - Set
RealMemoryto the number of megabytes you want to allocate to Slurm jobs, - Set
StateSaveLocationto/var/spool/slurm-llnl. - Set
ProctrackTypetolinuxprocbecause processes are less likely to escape Slurm control on a single machine config. - Make sure
SelectTypeis set toCons_res, and setSelectTypeParameterstoCR_Core_Memory. - Set
JobAcctGatherTypetoLinuxto gather resource use per job, and setAccountingStorageTypetoFileTxt.
Hit Submit, and save the resulting text into /etc/slurm-llnl/slurm.conf i.e. the configuration file referred to in /lib/systemd/system/slurmctld.service and /lib/systemd/system/slurmd.service.
Load /etc/slurm-llnl/slurm.conf in a text editor, uncomment DefMemPerCPU, and set it to 8192 or whatever number of megabytes you want each job to request if not explicitly requested using --mem during job submission. Read the docs and edit other defaults as you see fit.
Create /var/spool/slurm-llnl and /var/log/slurm_jobacct.log, then set ownership appropriately:
sudo mkdir -p /var/spool/slurm-llnl
sudo touch /var/log/slurm_jobacct.log
sudo chown slurm:slurm /var/spool/slurm-llnl /var/log/slurm_jobacct.log
Install mailutils so that Slurm won't complain about /bin/mail missing:
sudo apt install -y mailutils
Make sure munge is installed and running, and a munge.key was created with user-only read-only permissions, owned by munge:munge:
sudo service munge start
sudo ls -l /etc/munge/munge.key
Start services slurmctld and slurmd:
sudo service slurmd start
sudo service slurmctld start
To add GPUs to your cluster do the following (I assume your machine has NVidia drivers):
/etc/slurm-llnl/slurm.conf. Uncomment and change#GresTypes=toGresTypes=gpuand addGres=gpu:3among specifications of a compute node at the bottom, e.g.:/etc/slurm-llnl/gres.confand add:sudo service slurmd restart && sudo service slurmctld restartsrun -N 1 --gres=gpu:2080ti:2 env | grep CUDA-->CUDA_VISIBLE_DEVICES=0,1