跳转至

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,杜绝进程卡死残留