我正在尝试以典型方式在小型 ubuntu 18.04 HPC 集群上安装带有 NFS 的 SLURM,例如配置控制器 (slurmctld) 和客户端 (slurmd) 以及共享目录等。我很好奇的是,有没有办法设置它,使得在头节点的一部分上有一个控制器,而头节点中的其他驱动器则像其他节点一样被资源分区例程使用?有没有办法使用 SLURM 配置文件来实现这一点?
我本质上想问的是,如果控制器只做轻松的工作,如何最大限度地利用资源。
谢谢,干杯!
答案1
您正尝试将头节点用作计算节点。这在小型集群上非常正常,甚至在将 SLURM 作为队列系统的工作站上也是如此,以便更轻松地排队作业或在有权访问此工作站的一组用户之间共享计算能力。
为此,只需slurmd
在运行的同一台机器上启用即可slurmctld
。记得在计算规范上添加相应的节点和分区条目/etc/slurm/slurm.conf
。例如,您应该有类似以下内容:
ClusterName=Cloyster
ControlMachine=charizard.cluster.example.com
SlurmUser=slurm
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/var/spool/slurm/ctld
SlurmdSpoolDir=/var/spool/slurm/d
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurmd.log
JobCompType=jobcomp/none
TaskPlugin=task/affinity
PropagateResourceLimitsExcept=MEMLOCK
AccountingStorageType=accounting_storage/filetxt
Epilog=/etc/slurm/slurm.epilog.clean
SlurmctldParameters=enable_configless
ReturnToService=2
NodeName=charizard Sockets=2 CoresPerSocket=64 ThreadsPerCore=2 State=UNKNOWN
PartitionName=execution Nodes=charizard Default=YES MaxTime=720:00:00 State=UP Oversubscribe=EXCLUSIVE
观察NodeName是否有控制机的主机名。