张芷铭的个人博客

Slurm(Simple Linux Utility for Resource Management)是开源集群管理和作业调度系统,广泛用于 HPC 环境的资源分配与作业调度。

核心功能

功能说明
资源管理追踪 CPU、内存、GPU,按分区配置资源限制
作业调度FIFO、优先级调度、公平共享调度
作业管理提交、监控、取消作业
弹性扩展动态增减计算节点
高可用多控制器模式故障切换

典型工作流程

编写作业脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
#SBATCH --job-name=my_job       # 作业名称
#SBATCH --output=output.log     # 输出文件
#SBATCH --error=error.log       # 错误日志
#SBATCH --ntasks=1              # 任务数
#SBATCH --time=01:00:00         # 最大运行时间
#SBATCH --mem=4G                # 内存需求
#SBATCH --gres=gpu:1            # GPU 需求

module load python/3.8
python my_script.py

常用命令

1
2
3
4
5
sbatch my_job.sh        # 提交作业
squeue -u $USER         # 查看作业状态
scancel <job_id>        # 取消作业
sinfo                   # 查看分区状态
sacct                   # 查看历史作业

调度策略

策略说明
多队列调度不同用户/作业类型分配不同队列
优先级调度按优先级分配资源
公平共享调度确保资源在用户间公平分配

应用场景

  • 科学计算:气候模拟、基因组分析
  • 工程仿真:CFD、碰撞模拟
  • 机器学习:大规模 GPU 训练任务调度

参考资源

Comments