如何将SLURM QoS与LiCO配合使用1. 用户组1.1 添加用户组1.2 删除用户组2. 用户2.1 添加用户2.2 调整用户分组2.3 删除用户3. 队列3.1 新增队列3.2 调整队列4. QoS4.1 新增QoS4.2 调整QoS4.3 设置QoS与队列的关联4.4 设置QoS与用户组的关联4.5 删除QoS
HPC系统用户组由本地OpenLDAP服务来管理,如要使用Slurm QoS功能,则管理员需要手动同步用户组信息到Slurm中。
对用户组的操作可以通过LiCO Web界面来操作。
xxxxxxxxxx
sacctmgr add account <GroupName>
xxxxxxxxxx
sacctmgr delete account <GroupName>
HPC系统用户信息存储在管理节点的OpenLDAP服务中,如要使用Slurm QoS功能,则管理员需要手动同步用户信息到Slurm中。
xxxxxxxxxx
sacctmgr add user <UserName> Account=<GroupName>
新建的用户提交作业方式如下:
xxxxxxxxxx
sacctmgr add user <UserName> Account+=<NewGroupName>
sacctmgr modify user <UserName> set DefaultAccount=<NewGroupName>
sacctmgr delete user <UserName> Account=<OldGroupName>
Note: OldGroupName可以通过下面命令获得:
xxxxxxxxxx
sacctmgr list user where User=<UserName> format=DefaultAccount%30
xxxxxxxxxx
sacctmgr delete user <UserName>
队列是指Slurm调度器中的Partition,系统管理员可以通过LiCO Web界面来进行基本的队列管理。 Note: 由于作业相关的限制条件均由QoS来配置,所以不建议使用界面来修改队列的Max Time值。
QoS是Slurm提供的用来定义集群计算资源限制规则的方法。 管理员可以通过Slurm命令来动态的调整QoS,来实现对集群的运维。 为了使QoS规则生效,需要通过与队列(Parition),用户组(Account),用户(User)建立关系。常见的QoS配置有:
xxxxxxxxxx
sacctmgr add qos <qosName> [Options]
Options的具体用法请参考Slurm官方文档。下面是常见的QoS配置举例:
xxxxxxxxxx
sacctmgr add qos cpu_xl MaxTRESPerUser=cpu=128 Flags=DenyOnLimit
xxxxxxxxxx
sacctmgr add qos cpu_l MaxTRESPerUser=cpu=64 Flags=DenyOnLimit MaxWall=30-00:00:00
xxxxxxxxxx
sacctmgr add qos gpu_m MaxTRESPerUser=gres/gpu=4,node=2 Flags=DenyOnLimit
xxxxxxxxxx
sacctmgr add qos geforce_m MaxTRESPerUser=gres/gpu=2,cpu=10 Flags=DenyOnLimit
Note: 如需要取消某个资源上的限制,可设置为-1。
xxxxxxxxxx
sacctmgr list qos
xxxxxxxxxx
sacctmgr modify qos where Name=<qosName> set [Options]
Options的使用方法与新增QoS命令相同,具体用法请参考Slurm官方文档。
xxxxxxxxxx
vi /etc/slurm/slurm.conf
xxxxxxxxxx
PartitionName=cpu_high AllowGroups=grp_high Nodes=compute-0-[01-26],compute-1-[07-10],compute-2-[01-12] Priority=65533 QOS=cpu_xl State=UP
xxxxxxxxxx
scontrol reconfigure
xxxxxxxxxx
sacctmgr modify account where Account=<GroupName> set QOS=<qosName>
sacctmgr delete qos where <qosName>