Appearance
常见名词
一、计算资源类
家目录
家目录(Home Directory)是指每个用户在操作系统中专属的文件存储区域,通常用于存放用户的个人文件、配置文件和程序设置。它是用户工作环境的起点,用户对其有完全的读写权限。
用户登录后,终端、命令行与文件管理会默认进入家目录,常用的符号 ~ 就代表家目录,而家目录的绝对路径通常为/public(或work)/home/用户名。
用户可在家目录下存放文档、配置文件和程序数据,软件计算时也会自动将其配置文件与输出结果保存到用户家目录下某一文件夹中。
登陆节点
登录节点(Login Node)是高性能计算(HPC)集群中供用户访问和管理任务的入口点。用户通过登录节点连接到集群,以提交作业、编辑脚本、编译代码和检查输出,但不直接用于运行计算密集型任务。用户登录后,命令行会默认进入到登录节点,登录节点一般命名为loginxx。
登录节点的功能:
用户入口
:用户通过 SSH 等协议连接到登录节点,作为与集群交互的主要接口。作业管理
:提交、监控和管理计算作业(通过作业调度器,如 SLURM、PBS 等)。代码开发与调试
:在登录节点上编写、编辑、调试代码,或者编译程序。数据管理
:上传、下载文件,组织数据。资源查询
:查询集群资源使用情况,例如查看可用的节点、队列状态等。
由于登录节点的资源有限,通常会对用户行为做以下限制:
禁止运行计算密集型任务
:计算密集型任务会占用大量 CPU 或内存资源,影响其他用户的正常操作。这些任务应提交到计算节点(Compute Node)执行。限制进程和内存
:登录节点可能设置了 CPU 和内存使用的限制,超出限制的任务可能会被强制终止。有限的运行时间
:长时间运行的程序可能被系统管理员杀死,以确保登录节点的响应性。
队列
队列是SLURM作业调度系统管理用户任务的核心机制,用于组织和分配计算资源。
队列的核心特点:
任务排序
:作业按提交时间、优先级或资源需求排队等待调度。资源绑定
:每个队列通常绑定特定的计算资源(独占或共享、内存大小、GPU或cpu等)。
队列的常见用途:
区分资源类型
:不同队列具有不同的配置以适应各类任务需求,例如 CPU、GPU 节点队列、大内存队列等。管理任务类型
:如测试队列、正式队列、独占队列、共享队列。资源限制
:部分队列存在使用限制(如最大运行时间、最大任务数),如测试队列限制作业运行时间72h。
独占队列与共享队列:
独占队列
:在独占队列中,用户的作业独占某些计算节点或资源,其他用户无法使用这些资源。用户可以充分利用节点的全部资源(CPU、内存、GPU等),避免资源争夺。性能优先,适合资源密集型任务;可能存在资源浪费。共享队列
:在共享队列中,多个用户可以同时使用一个节点的资源,不同作业共享 CPU、内存和其他计算资源。资源利用率高,适合轻量级或测试任务;性能可能受影响。
异构加速卡
目前集群可用的加速卡为A100、T4、3090、4090,支持科学计算、AI for sicence、人工智能多种场景。其中,异构加速卡AI支持FP32、TF32、BF16、FP16、INT8等精度,是为人工智能计算场景推出的专业加速卡。
核时、卡时
在高性能计算中,核时(core-hour)和卡时(GPU-hour)是衡量计算资源消耗的两个重要概念,用于表示任务运行时所使用的计算资源量。它们是资源分配、计费和统计的重要指标。根据调用资源类型(cpu队列与gpu队列)的不同分别以核时与卡时来进行计费。
核时
:当调用纯cpu资源进行计算时,按核时来进行计费,核时是计算任务在 HPC 集群中使用的CPU 核心数与运行时间的乘积。计算方式:核时=使用的核心数×运行时间(小时)卡时
:当调用gpu资源进行计算时,按卡时来进行计费,且存在核卡比的概念,即一卡最多可调用多少cpu核,调用的cpu不做计费。卡时是指计算任务在 HPC 集群中使用的 GPU数量与运行时间的乘积。计算方式:卡时=使用的 GPU 数×运行时间(小时)
二、作业与模板
作业
提交的每一个作业均对应一个作业号,即作业ID,作业号可以通过控制台-任务管理进行查看。同时可以看到作业的状态、调用的资源、提交时间等信息。
还可以在命令行中使用squeue查看当前用户任务的作业号
JOBID
:作业号 ST
:状态 (R:运行中;CF:配置中;PD:排队中) 如果 squeue 没有任务信息,说明任务已退出并且退出的时间已经超出清理时间。
图形界面模板
在控制台-软件中心可以调用各类软件的作业模板,可以提供模板功能可视化提交作业,模板中可以选择软件版本、调用可用资源、可以看到当前资源空闲情况以及设置所需调用资源数量。
三、Slurm
集群采用Slurm(Simple Linux Utility for Resource Management)作业调度系统对用户提交的作业进行管理。通过合理分配计算资源以及优化作业调度以最大化资源利用率。
slurm脚本
Slurm脚本本质上是一个普通的 shell 脚本(通常是 Bash),其中包含了一些特定的 Slurm指令,用于描述作业所需的资源和运行条件。
Shebang行
:定义脚本的解释器,通常是 #!/bin/bash。Slurm指令
:以 #SBATCH 开头,用于向 Slurm 提供作业配置。如:#SBATCH -N 1 申请一个节点。Shell命令
:用于运行实际的作业命令,例如调用程序或执行脚本。
四、团队管理类
为了便捷管理与统筹项目或课题组中所有成员的资源分配与使用情况,引入了团队、团队管理员和团队成员的概念。
团队
:一个团队通常由多个用户组成,共同使用分配的计算与存储资源。团队通常对应于一个研究课题组、项目团队或企业部门。团队管理员
:团队管理员是负责管理团队资源和成员的用户,负责分配团队的计算资源给各成员、添加、删除或管理团队成员(成员)、可监督团队资源的使用情况。团队成员
:团队成员是指团队成员在集群中的个人账号,用于登录集群、提交作业和使用资源。成员的权限和资源配额由团队管理员管理,成员的使用记录会归属于团队,用于资源统计和计费,成员通常仅限于团队分配的资源范围内活动。