一、Slurm作业调度系统简介
Slurm是一个专为各种大小的Linux集群设计的开源作业调度系统,在高性能计算(HPC)领域被广泛用于管理集群资源和作业调度。其主要优点在于其开源性质、容错能力和高度可伸缩的架构,与其他作业调度系统(如IBM的LSF和PBS)相比,不需要修改操作系统内核,使其更易于集成和使用,并由于其开源特性,为学术界和工业界提供了灵活性和可定制性,使其成为HPC资源管理和作业调度的首选工具之一。
(一)Slurm资源管理架构
(1)Slurmctld
角色定位:Slurmctld是资源管理系统的中枢服务,也被称为Slurm中央管理器守护程序代码。
核心职责:
- 资源状态维护:持续跟踪和更新集群中各个节点的资源状态。
- 资源分配:根据作业需求和资源可用性,为作业分配相应的计算资源。
- 作业调度:管理一个未完成作业队列,根据调度策略(如FIFO或外部调度插件)决定作业的执行顺序。
- 作业管理控制:包括作业请求的接受、处理、状态更新以及作业终止等操作。
(2)Slurmd
角色定位:Slurmd是Slurm的节点守护进程,运行在每个计算节点上。
核心职责:
- 资源收集与报告:定期收集节点的资源状态(如CPU、内存、磁盘空间等),并向Slurmctld报告。
- 作业执行:接收来自Slurmctld的作业执行请求,并在本地节点上启动作业。
- 作业管理:负责作业步任务加载、作业取消等操作,并监控作业的执行状态。
- 系统状态监控:除了作业执行外,还负责监视系统的整体状态,确保节点的稳定运行。
(3)Slurmdbd
角色定位:Slurmdbd是Slurm的数据库守护进程,负责存储和管理作业的记账信息。
核心职责:
- 记账信息存储:将作业的记账信息(如作业ID、用户、执行时间、资源使用情况等)存储在数据库中。
- 查询与统计:提供查询和统计接口,允许用户和管理员查询作业的执行历史、资源使用情况等信息。
- 数据安全与隔离:确保记账信息的安全性和隔离性,防止未经授权的访问和修改。
(二)作业提交方式
1. 交互式作业提交(采用srun命令提交):
资源分配与任务加载两步均通过srun命令进行:
当在登录shell中执行srun命令时, srun首先向系统提交作业请求并等待资源分配,然后在所分配的节点上加载作业 任务。
采用该模式,用户在该终端需等待任务结束才能继续其它操作,在作业结束前,如果提交时的命令行终端断开,则任务终止。一般用于短时间小作业测试
2. 批处理作业(采用sbatch命令提交,最常用方式):
对于批处理作业(提交后立即返回该命令行终端,用户可进行其它操作)
使用sbatch命令提交作业脚本,作业被调度运行后,在所分配的首个节点上执行作业脚本。在作业脚本中也可使用srun命令加载作业任务。提交时采用的命令行终端终止,也不影响作业运行。
3. 实时分配模式作业(采用salloc命令提交):
分配作业模式类似于交互式作业模式和批处理作业模式的融合。
用户需指定所需要的资源条件,向资源管理器提出作业的资源分配请求。提交后,作业处于排队, 当用户请求资源被满足时,将在用户提交作业的节点上执行用户所指定的命令, 指定的命令执行结束后,运行结束,用户申请的资源被释放。在作业结束前,如果提交时的命令行终端断开,则任务终止。典型用途是分配资源并启动一个shell, 然后在这个shell中利用srun运行并行作业。
二、曙光高性能计算系统
虽然Slurm等开源集群管理和作业调度平台以其相对简单易用的特性,为集群资源管理提供了强大的解决方案。但是Slurm原生的使用方式对于才踏入高性能计算的用户来说,还是存在使用门槛过高、工业软件安装复杂、没有可视化页面、新手引导不够友好等问题。
同时在企业的实际生产场景中,往往伴随着自建计算资源不足,算力集群搭建维护困难,资源使用过程复杂等因素。
曙光Gridview集群综合管理系统(以下称集群)和曙光SACP平台(以下称平台),是一个专为高性能计算用户打造的综合性服务系统。该系统不仅充分利用了Slurm强大的资源管理和作业调度功能,还针对用户在使用过程中可能遇到的问题进行了全方位的优化和升级。
(一)系统关系简介
整个系统分为平台端和集群端,平台端作为整个系统的入口,提供平台层面的可视化管理,而集群端通过对Slurm功能进行封装,提供具体的命令行操作、计算节点和共享存储管理能力。
由图中可知平台与集群的是一对多的,整个系统可以同时接入多个算力集群,大大提升了算力资源的使用效率。
(二)系统层次模型
系统算力中心建设按照层次模型,分为硬件基础设施和软件基础设施两部分。其中硬件基础设施包括了计算、存储、网络,软件基础设施包括了基础软件(操作系统/计算框架/计算架构)、算力调度系统、算力调度控制平面、运营管理平台。该模型展示了从集群到平台的算力中心从底层硬件到上层软件的各个层次及其相互关系。
(三)系统使用介绍
对于初次接触高性能计算的用户来说,系统提供了友好的新手引导。用户可以通过系统的图形界面轻松了解HPC的基本概念、作业提交方式以及资源申请流程。此外,系统还提供了丰富的在线教程和视频教程,帮助用户快速掌握使用技巧。如图所示:
平台配合集群解决了工业软件安装复杂的问题。平台预装并上架了上百款应用软件商品,用户可根据自身需求,如网络购物一般购买需要的应用软件如Ansysfluent、abaqus、bladed等,用户无需自行安装,即可直接使用这些软件提交作业。同时,平台还提供了这些软件的模板、图形和命令行使用方式,满足不同用户的使用需求。
友好的作业提交卡片及丰富的应用
同时集群和平台都支持WebShell 使用 ,普通用户登录,首页右上角点击“WebShell”,即可进入WebShell终端,如图所示:
点击之后,即可进入WebShell界面,可以进行终端操作,执行各种linux命令,方便专业用户使用。
三、总结
依托于Slurm对于集群的强大调度能力,曙光的一整套系统大大加强了集群与集群之间的连接、算力共享,同时也优化了用户与应用之间的使用、连接、资源利用等功能,更是达到了多个超大集群的管理、调度、资源使用以及商业化的目的。
整个系统注重用户体验的优化,采用了先进的可视化技术,用户可以通过图形界面直观地查看作业状态、资源使用情况以及性能分析结果。这种可视化的设计,使得用户能够更加便捷地管理自己的计算任务。平台和集群提供了完善的用户指引和详细的操作指南,平台设立的在线客服和技术支持团队,也能随时解答用户的疑问和问题。此外,平台还定期举办线上线下的培训活动,帮助用户提升HPC技能。