# do all this as root to set up a simple one-node slurm cluster.

mkdir -p /tmp/slurm
mkdir -p /tmp/munge
mkdir -p /var/run/munge

cat<<EOF>/tmp/slurm.conf
ClusterName=GNU
SlurmctldHost=localhost(127.0.0.1)  # Primary server
#
AuthType=auth/munge
#AuthInfo=/tmp/munge/munged.socket
FirstJobId=65536
InactiveLimit=120
JobCompType=jobcomp/filetxt
JobCompLoc=/tmp/slurm/jobcomp
KillWait=30
MaxJobCount=10000
MinJobAge=3600
ReturnToService=2
SchedulerType=sched/backfill
SlurmctldLogFile=/tmp/slurm/slurmctld.log
#SlurmdUser=rekado
SlurmdLogFile=/tmp/slurm/slurmd.log
SlurmctldPort=7002
SlurmdPort=7003
SlurmdSpoolDir=/tmp/slurm/slurmd.spool
SlurmdPidFile=/tmp/slurm/slurmd.pid
SlurmctldPidFile=/tmp/slurm/slurmctld.pid
StateSaveLocation=/tmp/slurm/slurm.state
SwitchType=switch/none
TmpFS=/tmp
WaitTime=30
JobCredentialPrivateKey=/tmp/slurm/private.key
JobCredentialPublicCertificate=/tmp/slurm/public.cert
ProctrackType=proctrack/linuxproc
#
# Node Configurations
#
NodeName=DEFAULT CPUs=4 SocketsPerBoard=1 CoresPerSocket=2 ThreadsPerCore=2 RealMemory=2000 TmpDisk=64000
NodeName=DEFAULT State=UNKNOWN
NodeName=localhost NodeAddr=127.0.0.1 Weight=16

# Partition Configurations
#
PartitionName=DEFAULT MaxTime=30 MaxNodes=10 State=UP
PartitionName=debug Nodes=localhost Default=YES
EOF

# TODO: only do this if the key does not exist yet
mungekey -k /tmp/munge/munge.key

munged -F \
  --pid-file /tmp/munge/munged.pid   \
  --seed-file /tmp/munge/munged.seed \
  --key-file /tmp/munge/munge.key  &

# start the coordinator
slurmctld -v -D -f /tmp/slurm.conf &

# start the daemon for the first (and only) node
slurmd -D -f /tmp/slurm.conf &

Generated by Ricardo Wurmus using scpaste at Mon Apr 26 00:31:13 2021. CEST. (original)