Slurm
简介
Slurm(Simple Linux Utility for Resource Management)是一种开源、高性能计算(HPC)集群的作业调度和资源管理系统。它被广泛应用于超级计算中心和高性能计算集群,用于分配计算资源和管理并行任务。
一、功能
1.作业调度(Job Scheduling):
Slurm 能够根据用户的需求,将作业分配到计算节点上运行。它支持多种调度策略,例如优先级调度、时间共享调度和抢占式调度。
2.资源管理:
Slurm 管理集群中的资源(CPU、GPU、内存等),为用户提供基于资源需求的作业分配。
3.队列管理(Queue Management):
用户通过提交作业到指定队列(Queue 或 Partition)中来运行作业,Slurm 负责控制这些作业的执行顺序和资源分配。
二、核心组件
1.slurmctld(控制守护进程)
负责集群的核心调度逻辑和资源管理。
监控节点状态,分配资源并启动用户作业。
2.slurmd(计算节点守护进程):
运行在集群的每个计算节点上,负责接收作业指令、启动任务以及监控资源使用情况。
3.slurmdbd(数据库守护进程):
用于存储作业历史记录、用户信息和资源使用情况等,通常配合 MySQL 或 MariaDB 使用。
4.命令行工具(CLI 工具):
sinfo:查看集群状态
squeue:查看作业信息
squeue -j <job_id>
squeue -u <name>
squeue -p <names>
squeue -n <names>
srun:交互式作业提交
sudo -u hpc_quant srun -p [队列名] -t 1-0:0:0 --chdir /cache/hpc_quant/wy --pty -w xz** bash
--ptw :该选项允许用户以交互式模式启动任务
-w :强制指定运行节点
bash : 配合 --pty,这条命令实际上会在指定的计算节点上打开一个交互式终端(类似于远程登录的功能)。运行的命令是启动一个 bash Shell
sudo -u hpc_quant sbatch --array=230910-230917,230916%4 --chdir /cache/hpc_quant/wy --export key=value demo.sbatch
sbatch:提交一个批处理作业。
--array :用于创建数组作业,即提交多个作业实例(子作业)
--export key=value:将 key=value 作为环境变量传递给脚本中的作业实例。
--export :传递环境变量到作业执行环境中。
demo.sbatch:要提交的批处理脚本文件
scancel :取消已提交的作业
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库