Skip to content

Slurm调度系统

查看分区和节点

bash
sinfo
sinfo -N
sinfo -p gpu

常用参数:

参数说明
-N按节点显示
-p 分区名只查看指定分区
-l显示更详细信息

常见字段:

字段说明
PARTITION分区名
AVAIL分区是否可用
TIMELIMIT最大运行时间
NODES节点数量
STATE节点状态
NODELIST节点列表

查看队列任务

bash
squeue
squeue -u $USER
squeue -j 123456

常用参数:

参数说明
-u 用户名查看指定用户任务
-j 作业ID查看指定作业
-p 分区名查看指定分区任务

常见状态:

状态说明
PD排队等待
R正在运行
CG即将完成
CD已完成
F失败
TO超时

提交批处理任务

bash
sbatch job.slurm

示例脚本:

bash
#!/bin/bash
#SBATCH --job-name=test_job
#SBATCH --partition=compute
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G
#SBATCH --time=01:00:00
#SBATCH --output=slurm-%j.out
#SBATCH --error=slurm-%j.err

hostname
date
python script.py

常用 #SBATCH 参数:

参数说明
--job-name任务名称
--partition使用的分区
--nodes节点数量
--ntasks任务进程数,MPI 常用
--cpus-per-task每个任务使用的 CPU 线程数
--mem申请内存
--time最大运行时间,格式如 HH:MM:SS
--output标准输出日志
--error标准错误日志
--gres=gpu:1申请 GPU,具体写法依集群配置而定

GPU 示例:

bash
#!/bin/bash
#SBATCH --job-name=gpu_job
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=32G
#SBATCH --gres=gpu:1
#SBATCH --time=04:00:00
#SBATCH --output=%x-%j.out

nvidia-smi
python train.py

取消任务

bash
scancel 123456
scancel -u $USER

常用参数:

参数说明
作业ID取消指定作业
-u 用户名取消指定用户所有作业,慎用

查看任务详细信息

bash
scontrol show job 123456
scontrol show node node001

用途:

命令说明
scontrol show job查看任务申请资源、状态、节点等
scontrol show node查看节点详细状态

查看历史任务

bash
sacct
sacct -j 123456
sacct -u $USER
sacct -j 123456 --format=JobID,JobName,State,Elapsed,MaxRSS

常用参数:

参数说明
-j指定作业 ID
-u指定用户
--format指定输出字段