借助 Job Array dSQ 可以快速批量式提交一组使用资源和执行任务非常相似,只是某些参数不相同的作业。以下是 Job Array dSQ 使用说明:
新建文件joblist.txt,然后在文件中输入要计算的任务,每一行对应一个计算任务,如:
gatk GenomicsDBImport --genomicsdb-workspace-path ./AKCR1;
gatk GenomicsDBImport --genomicsdb-workspace-path ./AKCR2;
gatk GenomicsDBImport --genomicsdb-workspace-path ./AKCR3;
首先执行 module load dSQ 加载平台已安装的 dSQ 到当前终端窗口,然后执行如下命令生成 Slurm 作业提交脚。
dsq --job-file joblist.txt -p q_cn -n 1 --mem-per-cpu 40g
joblist.txt 为上一步骤编写的任务列表文件;-p q_cn 表示作业提交到 q_cn 队列;-n 1 表示每一个计算任务使用的核心;--mem-per-cpu 40g 表示每一个计算任务使用 40g 内存
命令执行成功后,会在当前目录生成一个`dsq-joblist-yyyy-mm-dd.sh`文件,`yyyy-mm-dd`为创建日期。
dsq-joblist-2019-08-01.sh:
#!/bin/bash
#SBATCH --array 0-9999
#SBATCH --output dsq-joblist-%A_%4a-%N.out
#SBATCH --job-name dsq-joblist
#SBATCH -p q_cn -n 1 --mem-per-cpu 40g
# DO NOT EDIT LINE BELOW
/usr/nzx-cluster/apps/dSQ/dSQBatch.py /GPFS/zhangli/DATA/vcf.call.dsq/joblist.txt /GPFS/zhangli/DATA/vcf.call.dsq
执行如下命令提交作业。计算任务列表 `joblist.txt` 文件中有多少行(多少个计算任务),将会提交多少个作业。
sbatch dsq-joblist-yyyy-mm-dd.sh
当有一个作业运行结束,当前目录下将会有一个job_jobid_status.tsv文件,该文件记录了每个作业的如下信息:
Job_ID: 作业号
Exit_Code: 程序退出码
Hostname: 占用节点名
Time_Started: 开始时间
Time_Ended: 结束时间
Time_Elapsed: 总耗时
Job: 运行命令
另外通过 slurm 的 squeue、scancel 命令可以查杀作业。
运行如下命令:
dsqa jobsfile.txt job_2629186_status.tsv > failedjobs.txt 2> report.txt
使用 dSQ 前要先执行 module load dSQ,加载该软件到当前终端环境
会生成 failedjobs.txt和 report.txt文件,这两个文件中会记录运行成功和失败的作业个数,并且还会记录哪些作业运行失败。
© 2023 by Personal Life Coach. Proudly created with Wix.com ICP备案号:京ICP备18029179号