使用 BtuneAK对基因测序软件进行加速
背景
本文主要介绍在 CHPC 平台使用 BtuneAK 自动化加速组件,可以直接对BWA、FastQC、Picard、Trimmomatic等业务端到端时长加速。
Btune 简单介绍
BtunePK介绍
BtunePK是百度自研的一款性能分析和调优工具,兼容Intel、AMD、ARM三个CPU平台,从底层到上层覆盖CPU微架构、内核、runtime和基础库、业务应用等,对业务进行全栈性能分析和优化,快速定位并解决性能瓶颈,实现业务性能最优。
Btune功能上分为两个部分:
(1)指标采集和分析展示:采集各种指标(整机配置、整机资源、进程热点、进程资源等),进行分析展示,初步确定异常点
(2)性能瓶颈定位和优化建议:Btune提供的诊断报告中包含两部分:分析摘要和详细报告。其中,分析摘要展示了业务性能瓶颈点和相应的优化建议,可以满足绝大部分的场景的需求。详细报告提供了更详细的性能分析数据,从系统配置、系统性能、进程线程模型、函数指令热点等多个维度呈现负载的资源分布、耗时分布、线程关系等运行特性,满足用户做更细粒度度性能优化。
详情可参见:应用性能诊断工具Btune
BtuneAK介绍
BtuneAK可以根据加速锦囊或者负载类别一键使能对应加速策略,无需改造用户程序实现透明加速。其中加速锦囊是由BtunePK一键分析生成,负载类别由用户执行BtuneAK时指定。两种方式可根据情况任选其一。
加速套件安装后成为一个系统工具,以命令行的形式执行,一键使能加速策略。
- 加速套件执行前的输入: CHPC 生科类用户输入的BtuneAK支持的负载名称或者类别。
- 加速套件执行过程(包含使能/回滚两种执行): 加速套件使能执行后,返回使能结果。
加速套件回滚执行后,返回回滚成功失败的结果。
适用软件
注:优化效果为软件在测试基准版本运行结果。
在 CHPC 使用 BtuneAK 对基因测序软件加速
准备工作
1、创建 CHPC 集群,具体操作,请参见 创建公共云标准集群
推荐配置参数
2、登录集群 :参考 登录集群,并切换到 work 用户
ssh root@<登录节点EIP>
su work
mkdir -p /home/work/local && cd /home/work/local
3、安装 BtuneAK 工具
在 /home/work 下载 BtuneAK 工具包并解压
cd /home/work/local && wget https://chpc-online.bj.bcebos.com/hic/release/output.tar.gz
tar zxvf output.tar.gz && mv output btuneAK
BtuneAK 加速使能
BtuneAK安装完成后,共 2 个文件夹,3 个文件,文件树如下:
[work@instance-xx ~]$ tree
.
├── btuneAK
│ ├── bin
│ │ └── btuneAK
│ └── conf
│ ├── accdata.conf
│ └── ak.conf
└── output.tar.gz
3 directories, 4 files
加速使能方法
这里以 Trimmomatic 使能为例
1)下载依赖软件及基因组数据信息
cd /home/work && mkdir -p /home/work/local
cd /home/work/local
wget https://chpc-online.bj.bcebos.com/hic/btuneak-example-files/software/jdk-17_linux-x64_bin.tar.gz && tar -zxf jdk-17_linux-x64_bin.tar.gz
wget https://chpc-online.bj.bcebos.com/hic/btuneak-example-files/software/Trimmomatic-0.39.zip && unzip Trimmomatic-0.39.zip
cd /home/work && mkdir -p /home/work/testjob/input && mkdir -p /home/work/testjob/output && cd /home/work/testjob/input
wget https://chpc-online.bj.bcebos.com/hic/btuneak-example-files/data/ctDNAFilter_node2.filtered_fq1.fastq
wget https://chpc-online.bj.bcebos.com/hic/btuneak-example-files/data/ctDNAFilter_node2.filtered_fq2.fastq
cp /home/work/local/Trimmomatic-0.39/adapters/TruSeq3-PE.fa /home/work/testjob
2)编写作业提交脚本
cd /home/work/testjob
#!/bin/bash
#SBATCH -n 1
#SBATCH -c 2
#SBATCH --mem 4g
enableBtuneAK=0
inputDir=/home/work/testjob/input
outputDir=/home/work/testjob/output
# 使能 BtuneAK 加速
if [[ $enableBtuneAK -eq 1 ]]; then
/home/work/local/btuneAK/bin/btuneAK -enable -workload=zip
source /home/work/local/btuneAK/common/lib/env_setup.sh
fi
/home/work/local/jdk-17.0.12/bin/java -jar /home/work/local/Trimmomatic-0.39/trimmomatic-0.39.jar PE -threads 1 ${inputDir}/ctDNAFilter_node2.filtered_fq1.fastq ${inputDir}/ctDNAFilter_node2.filtered_fq2.fastq ${outputDir}/output_for_input1_paired.gz ${outputDir}/output_for_input1_unpaired.fq.gz ${outputDir}/output_for_input2_paired.gz ${outputDir}/output_for_input2_unpaired.fq.gz ILLUMINACLIP:TruSeq3-PE.fa:2:40:15
# 回滚 BtuneAK 加速
if [[ $enableBtuneAK -eq 1 ]]; then
/home/work/local/btuneAK/bin/btuneAK -disable -workload=zip
fi
- 提交未启用 btuneak 优化的任务
sbatch trimmomatic.sbatch
通过查看 slurm-
通过 slurm 命令可看到运行时长
sacct -l -j <jobid>
根据返回结果运行时长为51 分 57 秒
- 提交启用 btuneak 优化的任务
修改脚本启用加速
#!/bin/bash
#SBATCH -n 1
#SBATCH -c 2
#SBATCH --mem 4g
enableBtuneAK=1
inputDir=/home/work/testjob/input
outputDir=/home/work/testjob/output
# 使能 BtuneAK 加速
if [[ $enableBtuneAK -eq 1 ]]; then
/home/work/local/btuneAK/bin/btuneAK -enable -workload=zip
source /home/work/local/btuneAK/common/lib/env_setup.sh
fi
/home/work/local/jdk-17.0.12/bin/java -jar /home/work/local/Trimmomatic-0.39/trimmomatic-0.39.jar PE -threads 1 ${inputDir}/ctDNAFilter_node2.filtered_fq1.fastq ${inputDir}/ctDNAFilter_node2.filtered_fq2.fastq ${outputDir}/output_for_input1_paired.gz ${outputDir}/output_for_input1_unpaired.fq.gz ${outputDir}/output_for_input2_paired.gz ${outputDir}/output_for_input2_unpaired.fq.gz ILLUMINACLIP:TruSeq3-PE.fa:2:40:15
# 回滚 BtuneAK 加速
if [[ $enableBtuneAK -eq 1 ]]; then
/home/work/local/btuneAK/bin/btuneAK -disable -workload=zip
fi
sbatch trimmomatic.sbatch
通过查看 slurm-
通过 slurm 命令可看到运行时长
sacct -l -j <jobid>
根据返回结果,相同执行方式下,运行时长为 23 分 12 秒,对比未加速前的51 分 57 秒,端到端运行时长缩短 55%左右。
附:
安装生科类软件方式
- 安装BWA。具体请参见 BWA。
- 安装FastQC。具体请参见 FastQC。
- 安装Picard。具体请参见 Picard。
- 安装Trimmomatic。具体参见 Trimmomatic。