如何使用Achelous qsub 运行Container 作业

在实际生物信息生产或科研工作中,存在着一些软件或工具需要临时进行执行的情况。此时使用WDL 语言通过镜像进行执行,显然步骤相对过于繁琐。Achelous 提供了模拟qsub 功能,可以使普通用户通过命令行脚本,提交Docker 容器化运行程序的功能。在最大程度上降低了使用Docker 技术的门槛。


步骤1:准备脚本

此应用比较典型的场景为:基因组建立比对所需索引。下面以bwa index为例,编写对应的脚本

#!/bin/bash
/bio/bwa/bwa index -a is  /autofs/vol6/qsub-test/chrM.fa.gz

需要注意

  1. 脚本第一行 #!/bin/bash 不能缺少
  2. 脚本中所有的路径均为绝对路径。若存在相对路径,需要在脚本中添加 cpmv 将文件转移至存储路径下。
  3. 保存的脚本需要保存至存储路径下。

步骤2: 任务投递

采用以下命令进行任务的投递

[user@Cc7Apc ~] qsub -l cpu=1:mem=512M:gpus=1 -i bwa:base --vol /var/log/:/var/test/log --vol /autofs/vol6/ /autofs/vol6/qsub-test/bwa-index.sh
Job (id: 47, name: nil) has been submitted

其中:

  1. -l 为程序运行所需要的资源限制
  2. -i 为程序运行所需的镜像名称
  3. --vol 为目录的挂载位置;支持两种类型的挂载方式:

    i) 指定挂载点形式,如:/var/log/:/var/test/log /var/log/ 为物理机目录;/var/test/log 为容器内挂载目录
    ii) 默认挂载形式,如: /autofs/vol6/ 在此模式下,Achelous 系统会自动将指定目录挂载至容器的同名目录下。

  1. /autofs/vol6/yawei/test/wdtest.sh 为所投递的脚本。
  2. 结果中id 为作业标识,后续用于查看作业状态。

步骤3: 结果查看

用户可以通过以下命令查询作业运行状态

[user@Cc7Apc ~] qstat -j 47 ## 47 为作业编号

==============================================================
job_number:                 47
state:                      finished
state_reason:               Container exited with status 0
exec_file:                  job_scripts/paladin-task.715d5b71-54ce-43e9-815a-1b1ce221728c
submission_time:            Mon Jun  7 14:50:10 CST 2021
deadline:                   Mon Jun  7 14:50:13 CST 2021
owner:                      user
uid:                        10844
group:                      user
gid:                        10844
sge_o_home:                 /home/user
sge_o_log_name:             user
sge_o_path:                 /home/user/.cargo/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin:/usr/local/go/bin:/home/user/.local/bin:/home/user/bin
sge_o_shell:                /bin/bash
sge_o_workdir:              /home/user
sge_o_host:                 Cc6Apc
execution_time:             Mon Jun  7 14:50:12 CST 2021
account:                    user
stderr_path_list:           /home/user/bwa-index.sh.e47Cc1Apc
mail_list:                  user@Cc1Apc
job_name:                   user.paladin-task.qHBc2899
stdout_path_list:           /home/user/bwa-index.sh.o47Cc1Apc
priority:                   1
env_list:                   TERM=NONE
script_file:                /autofs/vol6/qsub-test/bwa-index.sh
binding:                    NONE
job_type:                   NONE
Starve Timeout:             1h 0m 0s
usage         1:            cpu=1.000000, mem=512.00000 MB, io=00000 GB, vmem=N/A, maxvmem=N/A
binding       1:            NONE
scheduling info:            (Collecting of scheduler job information is turned off)
==============================================================

[user@Cc1Apc ~]$ ll /autofs/vol6/qsub-test/
total 37
-rw-rw-r-- 1 user user    76 Jun  7 14:49 bwa-index.sh
-rwxr--r-- 1 user root    5537 Jun  7 14:47 chrM.fa.gz
-rw-r--r-- 1 user user    10 Jun  7 14:50 chrM.fa.gz.amb
-rw-r--r-- 1 user user    35 Jun  7 14:50 chrM.fa.gz.ann
-rw-r--r-- 1 user user 16648 Jun  7 14:50 chrM.fa.gz.bwt
-rw-r--r-- 1 user user  4144 Jun  7 14:50 chrM.fa.gz.pac
-rw-r--r-- 1 user user  8336 Jun  7 14:50 chrM.fa.gz.sa

注意 为了保证存储上数据的安全,用户在通过qsub 功能进行docker 作业提交时,只能对自己名下的目录或文件进行修改。

Powered by XTAO TechnologyLast Modified On:2021 2023-03-24 09:06:38

results matching ""

    No results matching ""