用户资源
# 用户资源
虽然超级计算机拥有数量非常多的计算存储和存储资源,但对于某一个单一用户而言,通常仅使用其中很小很小的一部分。因此我们登录系统后,应当需要了解到如下 2个 关键问题:
- 我能有多少计算核心进行计算?
- 我的存储空间有多大?
当申请使用超过自己账号的资源时会导致失败,因此建议用户在使用前了解自己的资源权限。
在超算系统上,作业管理系统以计算结点/计算核心/GPU卡数为并行作业的资源分配单位,实现并行作业的调度运行。
资源管理系统首先将用户提交的应用程序构造成作业进行排队处理,然后根据系统的实时运行资源状态,决定何时以及在哪些计算结点中加载应用程序的运行,用户可以通过作业管理系统来监控应用程序的运行。
但为了保证系统资源的高效使用,用户请求的快速响应,系统的稳定性,在系统中做出了相应的使用限制,相关限制如下:
- 只有开通了权限的计算队列才能被看到和使用
- 每个队列都设置了可用的资源量
# 计算分区限制
根据用户的账号权限不同,能够使用的计算分区也不相同,用户可以通过 sinfo
或 yhi
命令查看可用分区,例如:
$ yhi
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug up 30:00 100 drain cn[1-100]
debug up 30:00 100 alloc cn[101-200]
debug up 30:00 100 idle cn[200-300]
2
3
4
5
说明:
关键词 | 含义 | 备注 |
---|---|---|
PARTITION | 分区名 | -p 分区名来指定分区 |
AVAIL | 可用状态 | up 可用 down 不可用 |
TIMELIMIT | 该分区的作业最大运行时长限制 | 30:00 表示30分钟 2-00:00:00表示2天 infinite表示不限时间 |
NODES | 节点的数量 | -N 数字 来指定节点数量 |
STATE | 节点的状态 | drain: 排空状态,表示该类结点不再分配到其他 idle: 空闲状态 alloc: 被分配状态 |
通过查看系统可用资源情况,我们就知道了要将计算任务提交到那里了,比如例子中的debug计算分区。
TIP
用户可以使用 yhi -l
或 yhcontrol show partition partition_name
命令,看到相应的分区限制信息。
所有分区均可以设定相应允许的用户队列,中心根据用户的不同分类,划分不同的资源,您如果看不到某些分区,是因为您不具备相应的资源使用权限。
idle 不等于可用
- 如果某计算队列存在 idle 状态的计算节点,但您的作业还是没有处于 RUNNING 状态,而是 PENDING 状态。这很可能不是系统出现了故障,而是作业正在排队。
- 请使用
squeue
或yhq
命令检查作业的排队原因
TIP
由于大型集群系统具备一定故障率,超算系统系统十分庞大,为了保证系统稳定性,分区中有限定任务执行时间的限制,因此建议用户为程序设立“断 点”从而保证任务由于意外中断后,可以继续运算。
# 计算资源数量限制
根据用户的账号权限不同,能够使用的计算分区对应的资源量也不相同,用户可以通过 sacctmgr list ass
命令,查看用户的资源数量。
$ sacctmgr list ass
Cluster Account User Partition Share GrpJobs GrpTRES GrpSubmit
------- ---------- ---------- ---------- --------- ------- ------------- ---------
tianhe root 1
tianhe zhenggang 1 30 cpu=280,node+ 30
tianhe zhenggang zhenggang debug 1 30 cpu=56,node=2
tianhe zhenggang zhenggang th_hpc1 1 30 cpu=280,node+ 30
2
3
4
5
6
7
说明:
1、针对某分区而言,通常会设置该分区最大可用的计算节点数、最大可用的计算核心数(通常和计算节点相匹配,比如一个节点有28核心,那么当计算节点数可用5个时,计算核心数通常设置为140核),以及可提交最大作业数和可运行最大作业数。 2、用户通常只需要关心可用的最大节点数、核心数即可。 3、如果遇到计算作业数不够的情况,可以联系管理员调整。
# 存储资源
为了合理利用有限的存储资源,通常超算中心会对用户做存储配额限制。例如,默认的设置可能时:存储软限制 500G,存储硬限制 1T,文件数软限制 100 万个,文件数硬限制 200 万个。
# 登录后显示
登陆系统后,通常就会显示该用户所属 group(即用户组)的存储情况:
Disk quotas for group demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 123G 500G 1T - 123 1000000 2000000 -
2
3
关键词 | 含义 |
---|---|
Filesystem | 用户所在的共享分布式存储 |
used | 用户目前已经使用的存储(单位KB) |
quota | 存储软限制(单位KB) |
limit | 存储硬限制(单位KB) |
grace | 存储状态 |
files | 用户已有的文件数量(单位:个) |
quota | 文件数量软限制(单位:个) |
limit | 文件数量硬限制(单位:个) |
grace | 文件数量状态 |
# 使用命令查询
$ lfs quota /fs1
使用该命令,可以查询到该用户的用户存储配额限制和用户组存储配额限制。
例如:
$ lfs quota /fs1
Disk quotas for usr demo (uid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 123G 500G 1T - 123 1000000 2000000 -
Disk quotas for grp demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 123G 500G 1T - 123 1000000 2000000 -
2
3
4
5
6
7
特别说明
存储配额通常只对用户组进行设置。当一个用户组下面拥有多个子用户时,可以分别对每一个用户进行子用户的配额限制。
# 详细说明
如果默认的设置为存储软限制 500G,存储硬限制 1T,文件数软限制 100 万个,文件数硬限制 200 万个。
1)用户使用存储低于500G时,存储状态正常;
Disk quotas for group demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 123G 500G 1T - 123 1000000 2000000 -
2
3
2)当用户使用存储介于500G
和1T
之间时,used参数对应的数字带有 *
表示用户配额异常,6d23h59m57s
表示倒计时,如果用户在倒计时结束前将使用存储清理到500G
以下,则存储状态恢复正常。
Disk quotas for group demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 768G* 500G 1T 6d23h59m57s 12345 1000000 2000000 -
2
3
3)如果在规定时间,否则用户的数据量超出软限制且超出倒计时,则无法使用了。
Disk quotas for group demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 768G* 500G 1T none 12345 1000000 2000000 -
2
3
4)如果用户数据在倒计时期间继续增长,超出硬限制,则用户存储将无法写入,数据操作也会受限制。
Disk quotas for group demo (gid 5005):
Filesystem used quota limit grace files quota limit grace
/fs1 1.2T* 500G 1T - 45678 1000000 2000000 -
2
3
TIPS
- 存储是有配额限制的:超出软限制,开启倒计时,倒计时到期就用不了了;超出硬限制,直接就用不了了。
- 查询配额,可以开启新终端登陆时自动显示,或通过命令查询。
- 当配额出现
*
时,请及时清理数据。 - 免费配额不足,可以联系超算工程师扩增存储资源。
# 更好的方式
天河系统提供了 thTools 工具包,其中有一个方便查询可用资源的命令 thAccountAuth
,如果记不住,可以先输入 thA
然后按 tab 键进行补全即可。该命令直接使用,无需增加参数,使用方法如下:
$ thAccountAuth
#==================================================================================
# 资源权限
#==================================================================================
Cluster Account User Partition GrpTRES GrpSubmit GrpJobs
---------- ---------- ---------- ---------- -------------------- --------- -------
tianhe root
tianhe zhenggang cpu=280,node=10 30 30
tianhe zhenggang zhenggang debug cpu=56,node=2 30
tianhe zhenggang zhenggang th_hpc1 cpu=280,node=10 30 30
#==================================================================================
# 存储权限
#==================================================================================
Disk quotas for usr zhenggang (uid 5005):
Filesystem used quota limit grace files quota limit grace
fs1 123G 512G 20T - 100000 1000000 20000000 -
Disk quotas for grp zhenggang (gid 5005):
Filesystem used quota limit grace files quota limit grace
fs1 123G 512G 20T - 100000 1000000 20000000 -
$
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
说明: 1、该命令先会显示可用的计算资源量,再显示存储资源量 2、计算资源部分,以上述 th_hpc1 分区为例
GrpTRES cpu=280,node=10
表示该分区可以最多使用cpu核心280个,node节点10个GrpSubmit 30
表示该分区可以最多提交 30 个计算任务GrpJobs 30
表示该分区最多可以运行 30 个任务 3、存储资源部分,先显示 usr 用户级的存储情况,再显示 grp 用户组级别的存储情况