跳到正文
TranquilYu's Blog
返回

Slurm 使用入门教程

约 4 分钟 · 629 字
教程
文章目录12 节
  1. 📌 1. 集群资源最大限制(本服务器)
  2. 📌 2. 推荐的日志规范
  3. 📌 3. 编写 .slurm 作业脚本
  4. 📝 常用 Slurm 参数说明表
  5. 📌 4. 提交任务:sbatch
  6. 📌 5. 查看任务队列:squeue
  7. 📌 6. 取消任务:scancel
  8. 📌 7. 查看 .out 和 .err 日志
  9. 📌 8. 滚动查看实时输出(tail -f)
  10. 📌 9. 交互式任务(srun)
  11. 📌 10. GPU 多卡示例
  12. 📌 11. 用大模型自动生成 .slurm 文件(推荐)
文章目录12 节

🧭 Slurm 使用入门教程:作业脚本编写、任务提交与队列管理指南

Slurm(Simple Linux Utility for Resource Management)是目前最主流的高性能计算(HPC)资源调度系统。本文将介绍:

本文假设你所在的集群使用 partition = lab104


📌 1. 集群资源最大限制(本服务器)

服务器硬件资源上限如下:

资源最大可申请量
CPU56 核
内存约 256 GB
GPU2 张(NVIDIA)
节点数单节点(1 台服务器)

注意事项:


📌 2. 推荐的日志规范

为了避免日志文件到处乱飞,建议统一放在:

~/slurm_logs/<job_name>/<jobid>.out
~/slurm_logs/<job_name>/<jobid>.err

例如:

~/slurm_logs/train/12345.out
~/slurm_logs/train/12345.err

你可以在脚本中这样设置:

#SBATCH --output=/home/$USER/slurm_logs/train/%j.out
#SBATCH --error=/home/$USER/slurm_logs/train/%j.err

📌 3. 编写 .slurm 作业脚本

下面是一个规范化的作业脚本示例:

#!/bin/bash
#SBATCH --job-name=test_job
#SBATCH --partition=lab104
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=16G
#SBATCH --gres=gpu:1
#SBATCH --time=48:00:00

#SBATCH --output=/home/$USER/slurm_logs/test_job/%j.out
#SBATCH --error=/home/$USER/slurm_logs/test_job/%j.err

echo "Job started at $(date)"
python train.py
echo "Job finished at $(date)"

📝 常用 Slurm 参数说明表

参数作用
--cpus-per-task=4每个任务分配 4 个 CPU
--gres=gpu:1申请 1 个 GPU
--mem=16G申请 16GB 内存
--time=48:00:00最长运行 48 小时
--output / --error指定日志路径

📌 4. 提交任务:sbatch

sbatch job.slurm

输出示例:

Submitted batch job 12345

📌 5. 查看任务队列:squeue

查看自己的任务:

squeue -u $USER

查看所有任务:

squeue

任务状态说明:

状态含义
PDPending(排队)
RRunning(运行中)
CGCompleting(结束中)
FFailed(失败)

📌 6. 取消任务:scancel

取消指定任务:

scancel 12345

取消当前用户全部任务:

scancel -u $USER

📌 7. 查看 .out.err 日志

假设日志路径为:

~/slurm_logs/test_job/12345.out
~/slurm_logs/test_job/12345.err

查看输出日志:

cat ~/slurm_logs/test_job/12345.out

查看错误日志:

cat ~/slurm_logs/test_job/12345.err

📌 8. 滚动查看实时输出(tail -f)

训练过程持续产生输出时最常用:

实时查看 .out

tail -f ~/slurm_logs/test_job/12345.out

实时查看 .err

tail -f ~/slurm_logs/test_job/12345.err

退出:

Ctrl + C

📌 9. 交互式任务(srun)

如果你需要进入带 GPU 的交互式环境调试:

srun --partition=lab104 --gres=gpu:1 --cpus-per-task=4 --mem=16G --pty bash

退出:

exit

📌 10. GPU 多卡示例

#!/bin/bash
#SBATCH --job-name=multi_gpu
#SBATCH --partition=lab104
#SBATCH --gres=gpu:2
#SBATCH --cpus-per-task=8
#SBATCH --mem=64G
#SBATCH --output=/home/$USER/slurm_logs/multi_gpu/%j.out
#SBATCH --error=/home/$USER/slurm_logs/multi_gpu/%j.err

python train_ddp.py

📌 11. 用大模型自动生成 .slurm 文件(推荐)

只需一条指令,例如:

帮我生成一个 Slurm 脚本,partition 为 lab104,需要 1 块 GPU、4 个 CPU、32GB 内存,运行 train.py,并规范输出日志。

大模型即可自动生成可直接运行的 Slurm 脚本,非常方便。


分享文章:

  1. OpenClaw 从安装到稳定运行:超详细配置教程(Debian/Ubuntu/WSL,含工具权限/浏览器/通道/排错)教程 · 面向新手的一站式 OpenClaw 实战教程:官方安装、模型接入、服务管理、工具权限、浏览器能力、消息通道、设备批准、故障排查与升级安全策略。
  2. 将Windows中文用户主文件夹修改为英文教程 · 一种无需重装系统解决用户主文件夹名为中文的方法
  3. Windows下的Python环境配置教程 · 使用Anaconda来进行Python环境管理
上一篇
【论文阅读 | TIM 2021 | STDFusionNet:基于显著目标检测的红外-可见光图像融合网络】
下一篇
2025.12.23 C语言程序设计上机实习八