标签:engine 开始时间 help rip baidu job 资源 产生 package
集群管理工具(SGE, Sun Grid Engine), 用于从登陆节点上向计算节点进行任务投递
SGE或者其他集群管理工作做的事情就是将用户投递的任务进行排队,然后将任务交给能够运行的计算节点执行,工作流程可以分为四步:
SGE中投递任务所用到的命令是qsub
. 最简单的用法是下面这种,即,将要执行的命令通过标准输入的方式传递给qsub
echo "ls -l " | qsub
投递之后可以用qstat
查看自己投递的任务的运行情况,如下图
第一列是任务编号, 第二列是优先级,第三列是任务名字,在参数里没有特别说明的情况下,SGE会用任务的来源进行命令,STDIN表示来自于标准输入,第四列是用户名,第五列是运行状态("r"表示运行中), 第六列表示任务投递和开始时间,第七列是任务投递的节点,第8列则是要申请的线程数?。在执行完成后会在家目录下生成"STDIN.e7883"和"STDIN.o7883", 其中7883就是任务编号, 前者存放标准错误输出, 后者存放标准输出, 因此"cat STDIN.o7883"的内容就是ls -l
的内容。
另一种方法是先写一个脚本然后投递,比如先编辑一个文件"ls.sh", 内容如下,然后用"qsub ls.sh"投递任务。
ls -l
跟之前一样,最后在家目录下产生了"ls.sh.exxxx"和"ls.sh.exxxx"两个文件
当然实际时肯定没有那么简单,我们需要增加各种参数来调整qsub
的行为,用qsub -help
可以看完整的参数,但是常用的为如下几个
-l vf=25G -l h=node1
就是任务的预估内存要25G(内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂), 申请在node1上运行shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。
shell 分为好几种:sh,bash,csh,tcsh, 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。
一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。
那么接下来就可以添加这些参数运行一些命令了,例如在命令行里投递一个比对任务
echo "bowtie2 -p 8 -x index/ref -1 data/A_1.fq -2 data/A_2.fq | samtools sort > A.bam" | qsub -V -cwd -l vf=25G -S /bin/bash -pe openmpi 8 -N A.bt2
这些参数除了在外部设置外,还可以在shell脚本里设置,如下
#!/bin/bash #$ -S /bin/bash #$ -V #$ -cwd #$ -l vf=25G #$ -pe openmpi 8 #$ -N a.bt2 bowtie2 -p 8 -x index/ref -1 data/A_1.fq -2 data/A_2.fq | samtools sort > A.bam
除了任务投递外,查询任务也是一个非常常用的命令,除了刚才直接用qstat
查看,还有如下参数比较好用
qstat -f # 查看用户任务
qstat -j jobId # 按任务id查看
qstat -explain a|c|A|E -j jobID # 查看任务任务并给出解释
qstat -u user # 按用户查看
任务状态:
任务删除也比较重要,毕竟偶尔会出现任务投递出错的情况
qdel -j 1111 删除任务号为1111的任务
-now yes|no
默认设置为yes
qconf -spl
查看可用并行环境qhost -j
按照节点显示任务qhost -F
展示每个节点的资源
#!/bin/bash
set -e
set -u
set -o pipefail
threads=8
index=index/hg19
FQ_DIR="analysis/0-raw-data"
ALIGN_DIR="analysis/2-read-align"
LOG_DIR="analysis/log"
TMP_DIR="analysis/tmp"
mkdir -p ${ALIGN_DIR}
mkdir -p ${LOG_DIR}
mkdir -p ${TMP_DIR}
tail -n+2 download_table.txt | cut -f 6 | while read id;
do
echo "
bowtie2 --very-sensitive-local --mm -p $threads -x $index -U ${FQ_DIR}/$id.fastq.gz 2> ${LOG_DIR}/$id.bt2.log | samtools sort -@ 2 -m 1G -T ${TMP_DIR}/${id} -o ${ALIGN_DIR}/${id}.sort.bam" | qsub -V -cwd -pe openmpi $threads -N ${id}_bt2 -q all.q -S /bin/bash
done
标签:engine 开始时间 help rip baidu job 资源 产生 package
原文地址:https://www.cnblogs.com/bio-mary/p/13225149.html