用qsub 投递一个命令行作业
SGE (Sun Grid Engine )长期以来是生物信息分析平台最为广泛使用的作业调度工具,虽然其在性能上存在诸多问题。但广大生物信息工作者长期使用习惯,造成目前很多生物信息代码是基于SGE 调度编写的。但随着新的计算平台的发展,基于SGE 的流程在平台间移植成本过高的问题,也日益突出。
为了解决这一问题,极道科技在Achelous 框架基础上,自主开发了一套基于命令行调度工具,以满足用户的使用习惯。用户可以在不熟悉WDL 编写的情况下,可以通过Achelous 客户端命令进行作业提交。为了照顾用户习惯并避免用户大规模修改已有脚本,Achelous 的命令行提交命令为qsub
,其使用方式也与SGE 的同命命令类似。但Achelous qsub 的实现方式与SGE 无关。 通过Achelous ,用户可以在同一套硬件设备上同时使用WDL 脚本和qsub 命令行进行作业提交。
同时,针对SGE 在集群计算资源控制(cpu、memory限制)等方面的缺陷,Achelous进行了改善,使用户可以更为稳定地,通过SGE 的相关命令进行作业提交。
Achelous 类SGE 作业投递示例
下面以通过Achelous 投递 bwa mem 比对为例,向用户展示如何进行相关操作。
1. 数据准备
用户可以在下载页面下载测试数据集
cd /mnt/vol
wget -c http://achelous.org/download/demo.dataset.tar.gz
cd demo-dataset
ls ./
2. 安装bwa
用户需要自行在存储路径下安装bwa 。可使用conda 进行整体安装,也可以自行下载源码进行编译安装。
3. 作业脚本准备
用户需要自行编写需要投递的脚本。脚本内容如下:
#! /usr/bin/sh
/mnt/vol/bwa/bwa mem -t 5 /mnt/vol/demo-dataset/ref.fa /mnt/vol/demo-dataset/demo.r1.fq /mnt/vol/demo-dataset/demo.r2.fq > /mnt/vol/demo-dataset/mydemo.sam
脚本可任意命名,在此示例中,脚本名称为 my-first-sge-job.sh
4. 作业投递
用户在登录节点下才可以使用qsub进行作业投递,作业投递命令如下:
foo@local#: qsub my-first-sge-job.sh
Job (id: 6228, name: nil) has been submitted
任务成功投递后会返回job-id,用户可以job-id 对作业状态进行查看。
5. 作业状态查看
用户可使用qstat 进行自身账户下作业运行状态查看,运行结果如下:
foo@local#: qstat -j 6228
==============================================================
job_number: 6228
state: finished
exec_file: job_scripts/paladin-task.a8a9ec25-c430-4949-bff3-51d006d089d9
submission_time: Thu Apr 29 14:31:11 CST 2021
deadline: Thu Apr 29 14:32:28 CST 2021
owner: foo
uid: 10007
group: foo
gid: 10007
sge_o_home: /home/foo
sge_o_log_name: foo
sge_o_path: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/root/myriad/hadoop-2.7.6/bin:/home/grid/hbase-1.4.9/bin:/usr/local/maven/apache-maven-3.6.1/bin:/usr/local/slider/bin:/home/yawei/.local/bin:/home/yawei/bin
sge_o_shell: /bin/bash
sge_o_workdir: /home/foo
sge_o_host: Cc3Apc
execution_time: Thu Apr 29 14:31:12 CST 2021
account: foo
stderr_path_list: /home/foo/my-first-sge-job.sh.e6228Cc3Apc
mail_list: foo@Cc3Apc
job_name: foo.paladin-task.M533sw69
stdout_path_list: /home/foo/my-first-sge-job.sh.o6228Cc3Apc
priority: 1
env_list: TERM=NONE
script_file: my-first-sge-job.sh
binding: NONE
job_type: NONE
usage 1: cpu=0.100000, mem=64.00000 MB, io=00000 GB, vmem=N/A, maxvmem=N/A
binding 1: NONE
scheduling info: (Collecting of scheduler job information is turned off)
6. 作业结果查看
当作业运行结束后,在/mnt/vol/demo-dataset/目录下会有相应的结果文件生成,用户可进入目录进行查看:
foo@local#: cd /mnt/vol/demo-dataset/
foo@local#: ls ./
mydemo.sam