GATK应用优化案例
应用背景
GATK是Genome Analysis ToolKit的缩写,是一款从高通量测序数据中分析变异信息的软件,是目前最主流的snp calling软件之一。
GKL( Genomics Kernel Library )是针对GATK和HTSJDK基因测序应用的计算内核优化库,支持64bit Linux及Mac OSX平台,基于x86 AVX、AVX2、AVX-512、 multicore、FPGA实现,在ARM平台使能需将x86 AVX指令集转化为Neon指令集实现。
当前GKL主要包含三大模块:PairHMM,Smith-Waterman和DEFLATE(compression/decompression),前两者为基于AVX指令的算法优化库,DEFLATE为Intel实现的压缩解压优化库。
使用软件
应用软件: GATK4.0.0.0
基础软件:鲲鹏Avx2Neon加速库
测试算例:数据集ReadsPipeline
成果
基于鲲鹏Avx2Neon加速库的应用优化后,GATK应用在鲲鹏平台单节点运行的整体性能上提升达160%。主要优化措施如下:
- 使用鲲鹏Avx2Neon加速库,对GKL进行ARM平台的迁移,提升GATK的性能。
- 在鲲鹏平台上对Spark线程进行NUMA绑核可以大幅提升Spark多线程计算性能。
- Spark内存分配优化策略,提升内存访问效率。