Slurm作业管理系统常用命令和教程
Slurm ( Simple Linux Utility for Resource Management )是开源的、具有容错性和高度可扩展大型和小型 Linux集群资源管理和作业调度系统。超级计算系统可利用 Slurm 进行资源和作业管理,以避免相互干扰,提高运行效率。所有需运行的作业无论是用于程序调试还是业务计算均必须通过交互式并行 srun、批处理式 sbatch 或分配式 salloc 等命令提交,提交后可以利用相关命令查询作业状态等。
同时北鲲云超算平台也是使用的Slurm作业管理系统,熟悉slurm作业管理系统的同学可以快速上手北鲲云进行计算,不熟悉的也没关系,一是可以学,我们有完整的教程以及技术支持服务,另外就是平台还提供模板提交方式,无需it基础也可以快速进行计算。直接按照模板提示提交作业即可。多种软件覆盖多个行业,欢迎来试一试。
一. 常用命令
sinfo #查看分区状态squeue #查看队列中的作业scontrol #查看作业详细信息scancel #取消已经提交的作业sbatch #批处理式提交作业salloc #分配式运行作业
1. 查看分区状态
sinfo
CPU分区命名规则为c-核心数-每核心内存大小
,如c-8-4:表示单节点规格为8核,每核心有4G内存,即节点规格为8核32G。
GPU分区命名规则为g-卡号-每节点卡数
,如g-v100-2:表示有两张显卡型号为tesla v100的gpu节点。
2. 查看作业队列
squeue
JOBID:作业号
。
ST:状态 (R
:运行中;CF
:配置中;PD
:排队中)。
3. 查看所有作业详细信息
scontrol show jobs
4. 取消作业号为20的作业
scancel 20
二. 提交作业的方式
1. 使用sbatch
批处理模式提交作业
sbatch命令可以提交任务至一个或多个计算节点,实现并行计算。
sbatch命令的一些常用选项
:
参数 | 功能 |
---|---|
-N |
申请的节点数量 |
-p |
指定计算节点规格,使用sinfo查看所支持的规格 |
-n |
指定任务数,即并行程序运行多少个进程 |
-c |
每进程使用的cpu核心数 |
参考运行程序:demo.sh
#!/bin/bashsleep 6000
提交示例:
使用2个4核心节点启动8个并行任务。
sbatch -N 2 -p c-4-1 -n 8 -c 1 demo.sh
1个4核心节点启动4个并行任务。
sbatch -N 1 -p c-4-1 -n 4 -c 1 demo.sh
1个4核心节点启动4个并行任务。
sbatch -p c-4-1 -n 4 demo.sh
1个4核心节点启动1个并行任务, 该任务使用4个cpu核心。
sbatch -p c-4-1 -n 1 -c 4 demo.sh
2个4核心节点启动2个并行任务, 每个任务使用4个cpu核心。
sbatch -p c-4-1 -n 2 -c 4 demo.sh
2. 使用salloc
分配模式提交作业
salloc命令可以用来分配节点,用户可以在获取分配的计算节点后,ssh进入直接运行相关计算程序,主要用来调式程序执行。
使用步骤(案例):
Step1. salloc申请计算节点;
salloc -N 1 -p c-8-2 &
Step2. ssh登录到分配的计算节点;
ssh c-8-2-worker0001
Step3. 调试或运行程序;
./demo.sh
Step4. 结束程序运行后释放分配的节点;
scancel 17