linux · 2020年 8月 30日 0

hpc高性能计算

slurm与pbs对比

[liupei@cg 2zk]$ cat sub.slurm 
#!/bin/bash
#SBATCH -J gf1cnn                #作业名是 gf1cnn
#SBATCH -p v3_ib                #提交到 v3_ib 分区
#SBATCH -N 1                      #使用一个节点
#SBATCH -n 1                    #cpu数
#SBATCH --cpus-per-task 24        #每个进程占用24个cpu核心
#SBATCH --gres=gpu:1            #申请1块gpu
#SBATCH -o gf1cnn.out         #将屏幕输出结果保存到当前文件夹的 gf1cnn.out 

source activate cnn            #切换python环境
./run_bass.sh 13            #执行我的 ./run_bass.sh 程序 

slurm并行超算

查看模块

# 载入远程复制 module
module load papp_cloud/2.6.18/2.6.18-cjj
# 载入预装的 python module
module load anaconda/3-Python3.6.5-fgl
# 查看可用 module
module avail 或 module avail anaconda 
# 查看分区 
sinfo 

并行的slurm脚本

#!/bin/bash
#SBATCH -p v3_ib
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -c 24

#srun matlab <testCascade.m
matlab -nodisplay < matlab_parfor.m

参考文献:CHICAGO

slurm作业操作

说明SLURMPBS
提交作业脚本sbatch run.slurmqsub run.pbs
查看作业状态squeueqstat
追踪作业scontrol show job 1234
取消作业scancel 1234qdel 1234

slurm作业/节点查询

  1. 查看分区信息
    scontrol show partition
    scontrol show partition debug
  2. 查看节点信息
    scontrol show node
    scontrol show node comput1
  3. 查看作业信息
    scontrol show job 作业ID
    scontrol show job 15
  4. 删除作业
    scancel 作业ID
    scancel 15

参考文献

pbs系统命令

北京大学的 HPC 教程,REF

pbs常用命令

qsub a.pbs    # 提交作业a
qstat -an     # 列出队列中所有作业及其分配的节点
qstat -q      # 查看所有队列
qstat -Q      # 列出队列的一些限制信息
qstat -Qf bdog # 列粗指定队列的所有信息
pestat        # 查看当前所有节点的占用状态
            # excl 所有cpu已被占用
        # busy cpu已接近满负荷运行
        # free 部分或全部cpu空闲
        # offl 管理员手动指定离线状态

查看当前所有任务的运行状态

qstat         # 可以查看当前所有任务的运行状态
ch_cumtlp3@mgr:~> qstat 
Job ID        Name       User     Time Use  S  Queue
----------  --------  --------- -------------------
375817.mgr  600470   ch_cumtlp3  155:47:3  R    l     

作业 375817 在节点 mgr 上运行,作业名称 600470

pbs脚本配置

-N name:作业名,限15 个字符,首字符为字母,无空格
-o path:重定向标准输出到path
-l resource_list:定义资源列表。
   nodes=N:ppn=M:请求N个结点,每个结点M个处理器。 
   mem  =N[K|M|G][B|W]:请求N大小的内存。
   cput =N:请求N秒CPU时间;N也可以是hh:mm:ss形式。
-m mail_options:给用户发信;a(作业abort), b(作业开始运行发信);e(作业结束时发信)。若无此选项,默认为a。
-M user_list:定义发给哪些用户,有关此作业的mail

pbs作业例子

#!/bin/sh
#PBS -N rfrk  
#PBS -j oe   # out put file
#PBS -l nodes=1:ppn=32
#PBS -q l
#PBS -m be
#PBS -M cumtlp@qq.com 
cd $PBS_O_WORKDIR   

/public3/home/ch_cumtlp3/installed/app/matlab/r2019b/bin/matlab -nodesktop -nosplash -nojvm \
-r "addpath('pcode');main('roi_pixel','rfrk',{'r',{[50,10,500]}}); exit;"

/public3/apps/matlab-2016b/bin/matlab -nosplash -nodesktop -nojvm \
-r "addpath('../../code/'); pbs_mlc(1:4,0.7); exit;"

pbs运行脚本

qsub test.pbs:提交作业
pbsnodes -l free:以行的行式列出空闲的节点
qstat -q:查看所有队列状态
qstat:查看作业运行状态
状态说明: E:退出; Q:排队;H:挂起; R:运行; C:结束
qstat -an:列出队列中所有作业及其分配的节点   
qstat -an 93:显示作业运行在哪些节点上
qdel 93:删除自己的作业    
TOC