代码改变世界

slurm使用

2018-08-21 22:18  ZealouSnesS  阅读(6638)  评论(0编辑  收藏  举报

官方文档:https://slurm.schedmd.com/

用户命令cheatsheet:https://slurm.schedmd.com/pdfs/summary.pdf

 

占用GPU

salloc -n 8 -N 1 --gres=gpu:8 --partition=matrix1

-n

CPU数

-N

节点数

-gres=gpu:8

8个GPU

--partition=matrix1

在集群1

释放占用的GPU

ctrl+D

 

启动批处理脚本

sbatch

查看任务队列

squeue

一般squeue | grep xxx(查看本集群的等待队列时一般grep matrix)

几列依次是:

任务id、集群id、用户权限、用户名、任务状态(R-running,PD-padding),任务已经运行的时间,占用节点数,分配的节点的ip(如果尚未分配节点则显示任务优先级)

 

 

杀死任务

scancel

设置正常输出

--output

设置错误输出

--error

 

脚本编写:

#!/bin/bash
###SBATCH参数以#开头,非注释!

#SBATCH --job-name=xxxx
###作业名称

#SBATCH --nodes=1
###使用节点数量

#SBATCH --ntasks=8
###总的进程数(CPU核数)

#SBATCH --ntasks-per-node=8
###每个节点的进程数,1个节点此项无需指定

#SBATCH --gres=gpu:8
###每个节点使用的GPU数量,CPU作业此项此项无需指定

##SBATCH --mem=10G
###申请预留内存大小,可选项

#SBATCH --partition=matrix1
###使用的分区,目前有n个集群分区

##SBATCH --workdir=/share/admin
###作业的工作目录,输出log在此路径
###此路径必须是NFS共享目录

#SBATCH --output=%j.out
###作业错误输出文件,%j代表作业ID

#SBATCH --error=%j.err
###作业正确输出文件

##SBATCH --begin=12:00
###作业开始执行时间,默认立即执行,可选项

##SBATCH --deadline=23:00
###作业强制终止时间,可选项

##SBATCH --mail-type=end
###邮件通知类型start/end/failed,end表示作业结束时邮件通知,可选项

##SBATCH --mail-user=xx@xx
###邮件通知邮箱,可选项
                                 
module load xxx
###加载环境

echo -e "JOB NAME:$SLURM_JOB_NAME,Job ID:$SLURM_JOBID,Allocate Nodes:$SLURM_JOB_NODELIST"
###显示作业名称,作业ID,使用节点


mpirun  caffe train -solver ./solver.prototxt -gpu all -weights ./model1.bin,./model2.bin
###训练
##mpirun caffe train
-solver ./solver.prototxt -gpu all -snapshot ./_iter_3000.solverstate ###finetune
###执行的程序,MPI作业,直接使用mpirun #srun .
/test ###执行的程序,普通作业,使用srun