Slurm用户及账户配置推荐设置

更新时间:2025-03-12 02:16:52

Slurm提供的账户与用户可被用于管理任务提交以及计费统计。本文主要介绍如何在Slurm集群中正确配置账户和用户,包括创建、修改和删除账户及用户的方法,并深入探讨如何以账户为单位来有效地跟踪和统计任务所消耗的资源量,从而帮助企业或研究机构更好地管理和优化其计算资源的使用效率。

用户和账户简介

  • 用户是什么

    Slurm中,用户指的是实际使用或登录系统的人,他们通过各自的账户来使用和管理资源。当用户提交作业时,Slurm会根据该用户的ID,在被分配到的计算节点上执行任务,并将作业的日志文件默认保存至用户的主目录下。此外,Slurm还支持将用户细分为Operator(操作员)、Admin(管理员)以及Coordinator(协调员)等具有更高权限的角色。

    • Operator角色能够访问普通角色无法访问的一些PrivateData,同时能够创建、更改和删除资源预留。

    • Admin角色的权限等同于root以及slurmUser,能够在集群中修改任何参数和配置。

    • Coordinator是账户管理员,能够在有权限的账户下新增用户以及子账户。

  • 账户是什么

    • 账户是用户在系统中的数字身份或记录。比如,当我在一个网站上注册时,我的个人信息和登录凭据就构成了一个账户,而我本人就是用户。账户主要用于资源管理和费用计算,通常与预算、配额和费用相关联,帮助管理员控制资源的使用和分配。

    • Slurm中的账户代表一个计费单位,账户与账户之间可以存在层级的关联关系。在Slurm中,账户可以代表一个组织或项目,用于跟踪和管理该组织或项目的资源使用情况。

  • 区别与联系

    举个例子,用户是真实的人,账户是系统为这个人生成的“工具”。用户通过账户与系统交互,就像你(用户)通过银行卡(账户)存取钱一样。一个用户可以有多个账户(例如储蓄账户、信用卡账户)。一个账户通常只属于一个用户(除非是联名账户)。用户如研究员,账户如实验室资源配额,研究员通过配额账户提交计算任务。

  • Slurm中管理用户与账户

    • 用户和账户之间的关系通过用户、集群、分区名及账户名这四元组来定义,称为“关联(Association)”。

    • 系统要求每个数据库中的用户至少指定一个默认账户。

      Slurm启动时,可以通过配置项AccountingStorageEnforce=associations来确保提交任务时所使用的用户、账户、集群和分区信息构成的有效四元组能在数据库中找到。此外,AccountingStorageEnforce还支持其他可选参数如limitsnojobsnostepsqossafewckeys等,这些选项可以单独或组合使用,并以逗号分隔的形式指定给AccountingStorageEnforce参数。具体功能,请参见官方文档

    • Slurm提供了一个名为sacctmgr的工具,用于管理和维护数据库内的账户信息。

      利用sacctmgr,管理员能够创建新的用户和账户,并为特定的“关联”、用户或账户设置资源使用限制(QoS)以及作业提交规则。值得注意的是,当针对单个用户设置了QoS或作业提交限制时,这些个性化设置将优先于该用户所属账户层面的一般性规定执行。

配置用户与账户

配置账户组织

Slurm中,管理员能够通过创建不同的账户来高效地管理多个项目或组织,每个账户均可独立设定资源配额及费用标准。用户可以根据自身需求加入一个或多个账户,在不同项目或组织间灵活使用系统资源。这种架构不仅提高了资源管理的灵活性与效率,还更好地适应了多样化用户需求。

对于高性能计算(HPC)系统的管理者来说,根据组织内部的层级关系构建层次化的账户体系是一种有效的策略。这样可以在每一层添加用户,并为这些用户或整个账户设置特定的任务提交限制。如果需要在集群内对机器进行分区管理以服务于不同部门,则可以为用户指定可访问的分区,并进一步细分为优先级较高的分区和较低的分区,以便于高优先级任务能够在必要时抢占低优先级任务所占用的资源。可以通过sacctmgr工具,按照以下步骤来配置上述账户结构。

sacctmgr add account department parent=root \
  Description="none" Organization="none"
  • department是组织架构中的部门,可以替换成实际的部门名称。

  • parent=root表明该部门是root节点的子节点。root是系统中的默认创建的账户。

  • Description字段为部门描述,Organization表明该部门所属的组织。

创建完账户后,系统中会自动创建出一个用户为空的Association,可以通过sacctmgr list association查看。

账户添加用户

  • 在添加账户之后,您可以向该账户中添加用户。使用sacctmgr add user usera Account=department命令来添加用户。

    • usera是实际需要添加的用户名。

    • 添加用户后系统中会自动创建出user=usera,account=departmentAssociation。

  • 在配置用户资源及任务提交限制时,可以通过以下命令进行设置:sacctmgr modify user name=usera account=department set GrpTRES=cpu=1000m

    • name=usera代表此次设置的用户名,

    • account=department代表本次设置的是账户department中的用户。如果不指定此项,则会将设置应用于该用户中的所有账户。

    • set后的GrpTRES是设置的参数。

说明

如果需要设置账户相关的资源以及任务提交限制,需要通过sacctmgr modify account name=department set GrpTRES=cpu=1000m,其中name=department代表设置该账户的资源上限。

  • 本页导读 (1)
  • 用户和账户简介
  • 配置用户与账户
  • 配置账户组织
  • 为账户添加用户