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 | 指定输出字段 |