PBS-2

PBS作业管理系统使用技巧 | Kevinzjy's Blog

PBS是一种十分常用的集群作业调度系统,主要包括openPBS, PBS Pro和Torque三种分支。本文以Torque为例,简单介绍一下PBS作业调度系统的使用技巧

Torque介绍

什么是TORQUE:

Terascale Open-source Resource and QUEue Manager (TORQUE) 是一个分布式计算节点和批处理作业的资源调度系统,常在高性能计算集群中用于计算作业的提交和管理。用户可以使用TORQUE将计算作业提交到不同计算队列,常用的命令包括qsub(提交作业), qstat(作业状态查询)和qdel(删除作业)

官网地址: Support Portal

Torque使用基础

作业提交和管理命令

命令

功能

使用说明

示例

qsub

提交pbs作业

qsub [script]

$ qsub job.pbs

qdel

删除pbs作业

qdel [job_id]

$ qdel 12345

qhold

挂起pbs作业

qhold [job_id]

$ qhold 12345

qrls

释放挂起的pbs作业

qrls [job_id]

$ qrls 12345

作业状态查询命令

命令

说明

qstat -q

列出所有队列

qstat -a

列出所有作业

qstat -u user_id

列出user_id的所有作业

qstat -r

列出所有正在运行的作业

qstat -f job_id

列出作业job_id的信息

qstat -fQ queue

列出队列queue的信息

qstat -B

列出所有作业状态的汇总

pbsnodes

列出所有节点的详细信息

pestat

列出所有节点的状态

qstat -n

列出节点信息

PBS作业参数

12345678

#!/bin/bash#PBS -l nodes=1:ppn=16#PBS -l walltime=1000:00:00#PBS -q high#PBS -N Job_Name#PBS -oeyour_commands_goes_here

提交交互式作业

我们可以通过-I选项提交一个交互式的作业,效果类似直接ssh登录到计算节点

qsub -I -N stdin -l nodes=1:ppn=16 -l walltime=1000:00:00 -q high

批量提交作业

在很多情况下,我们需要提交大量相似的任务,比如大量样本的转录组数据分析,每个样本数据的分析流程都是一致的,提交的脚本中一般只有样本名字不同,那么如果对每个样本产生产生一个shell脚本,是非常麻烦的。在这种情况下,我们可以通过任务模板与qsub -v命令,进行作业提交时的参数传递。

模板任务文件:template.sh

1234567

#!/bin/bash#PBS -j oe#PBS -q high#PBS -l nodes=1:node:ppn=4#PBS walltime=1000:00:00hisat2 -p 4 -x hg19 -1 ./reads/${sample}_1.fq.gz -2 ./reads/${sample}_2.fq.fz -t | samtools view -bS > ./align/${sample}.bam

任务参数文件:job_params.csv

123

sample1sample2sample3

任务投递脚本:qsub.py

1234567891011121314151617181920

#!/usr/bin/env pythonimport csvimport subprocessimport timeparam_file = './job_params.csv'cwd = '/home/kevinzjy/RNA-seq'with open(param_file, 'r') as f: reader = csv.reader(f) for sample in reader: qsub_cmd = 'qsub -N {0} -d {1} -v SAMPLE={0} template.sh'.format(sample, cwd) # print qsub_cwd exit_status = subprocess.call(qsub_cmd, shell=True) if exit_status is 1: print 'Job "{}" failed to submit'.format(qsub_cwd) time.sleep(1)print "Done submitting jobs!"

通过qsub.py,我们可以实现对job_params.csv里面每一行对应的样本数据

批量删除作业

如果要删除一个用户所有的作业,可以使用qselect结合xargs命令,进行作业编号的提取和对指定编号作业的删除

qselect -u user_id | xargs qdel

利用qselect命令,我们可以增加参数进一步缩减选择的作业范围,详细信息可以参考man qselect中的说明

参数

说明

-N

指定作业名字

-s

指定状态 [EHQRTW]

-u

指定用户列表

删除某用户所有正在排队的任务:

1

qselect -u user_name -s Q | xargs qdel

xargs命令的作用是读入标准输入的内容并分行,对其中每一行的内容都执行相同的命令,在这里xargs读入了前面管道中qselect命令得到的某用户的所有作业编号,对于每个编号执行了qdel命令,起到了删除该用户名下所有作业的效果

节点状态

excl:所有CPU资源已被占用;

busy:CPU已接近满负荷运行;

free:全部或部分CPU空闲;

offl:管理员手动指定离线状态;


官方手册:Altair Product Documentation - Altair Community

OpenPBS 配置安装完全教程 | CENTOS 7 | A complete Tutorial | 老土驿站

qsub作业提交命令_海云之家的博客-优快云博客_qsub 提交作业


node         state  load     phymem   ncpus   allmem resi    usrs     tasks   jobidlist

cu01         down*  0.00     515699      80   579699 3955    1/1      0       

cu02         down*  0.04     257429      40   273813 18205   3/1      0       

cu04         down*  0.08     257419      48   294283 2979    1/1      0       

node1        free   0.00     257321      32   290089 2350    0/0      0       

node2        free   0.00     257321      32   290089 2341    0/0      0       

node3        free   0.00     257321      32   290089 2342    0/0      0       

node4        free   0.00     257321      32   290089 2344    0/0      0       

node5        free   0.00     515101      32   547869 3767    0/0      0       

node6        free   0.00     515101      32   547869 3772    0/0      0       

node7        free   0.00     1031165     48  1063933 6783    0/0      0       

node8        free   0.01     1031165     48  1063933 6785    0/0      0

node

phymem

ncpus

allmem

cu01

515699

80

579699

cu02

257429

40

273813

cu04

257419

48

294283

node1

257321

32

290089

node2

257321

32

290089

node3

257321

32

290089

node4

257321

32

290089

node5

515101

32

547869

node6

515101

32

547869

node7

1031165

48

1063933

node8

1031165

48

1063933


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值