Slurm srun 极简速查表(日常高频·可直接复制)¶
核心区别:srun = 实时交互式跑任务 / sbatch = 后台队列跑脚本
基础语法:srun [参数] 可执行程序 [参数]
一、核心资源参数(必记)¶
| 参数 | 作用 | 使用场景 |
|---|---|---|
-p |
指定分区/队列 | 所有任务必加 |
-N |
节点数 | 多节点并行 |
-n |
总MPI进程数(任务数) | 并行程序核心参数 |
-c |
单任务CPU核心数(线程数) | OpenMP混合并行 |
--gres=gpu:N |
申请N张GPU | 深度学习/GPU加速任务 |
--mem=XG |
节点总内存 | 限制内存防OOM |
-t |
最大运行时长 | 防止任务超时被杀 |
-J |
设置任务名 | 方便squeue查看 |
二、高频实用参数(提效必备)¶
| 参数 | 功能说明 |
|---|---|
--pty |
获取交互式终端(登录节点必备) |
--unbuffered |
实时刷新日志,不缓存(调试神器) |
--cpu-bind=cores |
CPU核心绑定,提升并行性能 |
--kill-on-bad-exit |
单个进程报错,整体任务终止(防卡死) |
--exclusive |
独占节点,无资源争抢 |
-o/-e |
指定标准输出/错误日志文件 |
--dry-run |
模拟调度,仅校验资源,不运行程序 |
-L 软件名:N |
申请软件许可证(EDA专用) |
三、日志占位符¶
-
%j:任务ID -
%N:节点名称 -
%n:任务编号 -
%x:任务名称
示例:-o log_%j_%N.out
四、万能模板(直接复制使用)¶
1. 交互式节点登录(调试/编译)¶
```Plain Text srun -p compute -N1 -c8 --gres=gpu:1 -t 3:00:00 --pty --unbuffered bash
### 2\. 纯MPI并行任务
```Plain Text
srun -p compute -n16 --cpu-bind=cores --kill-on-bad-exit ./mpi_app
3. MPI+OpenMP 混合并行¶
```Plain Text srun -n4 -c8 bash -c "export OMP_NUM_THREADS=8; ./hybrid_app"
### 4\. 单卡GPU任务
```Plain Text
srun -p gpu --gres=gpu:1 --mem=20G -t 12:00:00 python train.py
5. EDA仿真带许可证¶
```Plain Text srun -p sim -L vcs:2 -n8 --unbuffered -o sim_%j.log ./sim_run
### 6\. 资源预校验(不运行)
```Plain Text
srun --dry-run -p compute -N2 -n16 ./app
五、高频避坑清单(必看)¶
-
交互式终端必须加 --pty,否则Tab补全、光标异常
-
sbatch脚本内调用srun,禁止重复写-N/-n/-c,复用已有资源
-
MPI任务禁止嵌套 mpirun/srun,会造成双重并行、性能暴跌
-
混合并行必须手动配置 OMP_NUM_THREADS,避免线程溢出
-
大规模任务必加 --kill-on-bad-exit,杜绝进程卡死残留