slurm 使用

简单使用

方法一:
交互式使用方式:使用 salloc 请求资源,然后可以使用 ssh 连接节点后使用。squeue 用来查看 job

salloc -N1 -n1 --exclusive
squeue -u `username` --state=running
ssh casxxx

详解解释
–exclusive 为独占节点,

方法二:
srun -N 2 -n 24 -p debug -q debug programname > ouputfile
-N 表示节点个数,-n 表示总进程数,-p 表示分区,-q表示优先级,programname 表示要运行的程序, > ouputfile 表示屏幕输出保存的文件。

sbatch 提交作业

  • 先写作业脚本 xxx.slurm
  • 然后再使用命令 sbatch xxx.slurm 提交作业
  • 以下为一个作业脚本示例
#!/bin/bash

#SBATCH --job-name=hostname
#SBATCH --partition=cpu
#SBATCH -N 1
#SBATCH --mail-type=end
#SBATCH [email protected]
#SBATCH --output=%j.out
#SBATCH --error=%j.err
#SBATCH --time=00:00:10
#SBATCH --exclusive

/bin/hostname

向cpu队列申请1个节点,将作业最大运行时长限制设置为10秒,并在作业完成时通知。在此作业中执行的命令是/bin/hostname。

更多例子:http://hpc.pku.edu.cn/_book/guide/slurm/sbatch.html

申请cpu

#!/bin/bash
#SBATCH -o job.%j.out
#SBATCH -p C032M0128G
#SBATCH --qos=low
#SBATCH -J myFirstJob
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1

hostname

解释:

#SBATCH -o job.%j.out       # 脚本执行的输出将被保存在job.%j.out文件下,%j表示作业号;
#SBATCH -p C032M0128G       # 作业提交的指定分区为C032M0128G;
#SBATCH --qos=low           # 指定作业的QOS为low;
#SBATCH -J myFirstJob       # 作业在调度系统中的作业名为myFirstJob;
#SBATCH --nodes=1           # 申请节点数为1;
#SBATCH --ntasks-per-node=1 # 每个节点上运行一个任务,默认一情况下也可理解为每个节点使用一个核心;

申请 GPU 的作业例子

#!/bin/bash
#SBATCH -o job.%j.out
#SBATCH --partition=GPU
#SBATCH --qos=low
#SBATCH -J myFirstGPUJob
#SBATCH --nodes=1                 # 申请一个节点
#SBATCH --ntasks-per-node=6
#SBATCH --gres=gpu:tian_xp:1              # 每个节点上申请一块GPU卡


nvidia-smi

注:使用 scontrol show nodes 可以查看节点的配置,申请gpu需要指定类型:--gres=gpu:titan_xp:1 表示申请1块类型为titan_xp的GPU。

geforce_rtx_2080_ti

注意:必须加分区才能申请成功

一些常用的命令

  • scancel jobid :取消某个job
  • sacct :查看之前的任务
  • squeue:查看作业状态
  • sinfo:查看分区和节点信息
  • scontrol show nodes:查看节点的配置信息

其他教程地址

http://bicmr.pku.edu.cn/~wenzw/pages/slurm.html

你可能感兴趣的:(Linux,linux)