Slurm:高性能计算集群的调度利器

Slurm(Simple Linux Utility for Resource Management)是一个开源的、容错且高度可扩展的工作负载管理器,专为 Linux 集群设计,广泛应用于高性能计算(HPC)环境[[1]][[2]][[3]]。它最初由劳伦斯利弗莫尔国家实验室(LLNL)开发,旨在高效管理和调度计算资源,支持从小型集群到世界顶级超级计算机的各种规模系统[[4]]。
核心功能
Slurm 主要具备三大关键功能[[5]][[6]][[7]]:
- 资源分配:为用户分配对计算节点的独占或非独占访问权限,以执行任务。
- 作业管理:提供框架来启动、执行和监控作业(包括并行作业),并在分配的节点上管理任务运行。
- 队列仲裁:通过管理待处理作业的队列,解决资源竞争问题,支持多种调度策略(如优先级调度、回填调度等)[[8]]。
主要组件
- slurmctld:中央管理守护进程,负责集群调度和资源管理[[9]][[10]]。
- slurmd:运行在每个计算节点上,接收并执行来自 slurmctld 的指令,监控资源使用情况[[11]][[12]]。
- slurmdbd:数据库守护进程,用于存储作业历史、账户信息等数据(可选)[[13]][[14]]。
- 命令行工具:包括
sinfo(查看分区和节点状态)、squeue(查看作业队列)、sbatch(提交
