麦斯科技 · 2022年10月08日 · 四川

使用Arm服务器减少基因组学的时间和成本

https://community.arm.com/arm-community-blogs/b/high-performance-computing-blog/posts/aws-graviton3-reduces-time-and-cost-for-genomics

作者:David Lecomber 2022年10月5日

基因组学已经彻底改变了公共卫生,并继续为我们所有人带来好处。为了实现其众多成果,需要在云计算、on-prem数据中心、研究中心、医院和更广泛的生命科学行业中进行大量且不断增长的计算投入。

Reference-guided assembly是该领域许多工作流中的一个重要阶段。对于一个典型的患者,拭子会导致样本在测序机中测序。这台机器的输出是千兆字节的片段(A、C、G和T DNA碱基的子串)。这些读数与来自(标准)参考个体的完整人类基因组“对齐”,以确定读数“适合”的位置,并组成患者基因组的大部分。

完成reference-guided assembly的三个最著名的应用程序是BWA(https://github.com/lh3/bwa)、BWA-mem2(https://github.com/bwa-mem2/bwa-mem2)和minimap2(https://github.com/lh3/minimap2)。由于应用如此广泛,这些应用程序的价格和性能对行业至关重要。

在之前的博客(优化Arm服务器的BWA aligner:https://community.arm.com/arm-community-blogs/b/high-performance-computing-blog/posts/optimizing-genomics-and-the-bwa-aligner-for-arm-servers)中,我们展示了如何在AWS Graviton2上运行BWA及其性能,以对比2021早期流行的x86_64服务器。

在本博客中,我们现在可以展示三种主要aligners在Arm架构AWS Graviton3上的性能。AWS Gravaton3是AWS 服务器系列中最新的基于Arm的服务器,也是AWS Gratiton2的后续型号。

我们证明,与AWS Graviton2相比,AWS Gravaton3的性能提高了12%到31%。与目前最好的x86_64系统相比,Graviton3的绩效提高了10%和23%。与同类x86_64系统相比,此结果可节省20-30%的成本。

应用程序和测试用例

我们使用1000 Genomes项目中的human_g1k_v37引用和NIST档案中的NA12878引用。这些测试用例都反映在AWS S3上,并使用以下方法获取:

aws s3 cp –no-sign-request s3://1000genomes/technical/reference/human_g1k_v37.fasta.gz .

aws s3 cp –no-sign-request s3://giab/data/NA12878/Garvan_NA12878_HG001_HiSeq_Exome/NIST7035_TAAGGCGA_L001_R1_001.fastq.gz .

在每种测试案例下,我们都使用gcc-10编译器进行平台比较。这些测试用例中的每一个都可以通过普通的构建脚本在Arm上轻松构建,要么在主存储库中,要么在等待合并的公共分支中。

https://github.com/lh3/bwa

https://github.com/dslarm/bwa-mem2

https://github.com/dslarm/minimap2

这些应用程序都是多线程的,具有可配置数量的工作线程。我们使用32个工作线程演示了8xlarge实例上的基准测试,这些实例有32个vCPU。

在运行时,我们使用Cloudflare zlib包替换系统zlib,这有助于aligners 更快地解压缩输入数据文件。在进一步的优化中,对于bwa,我们预加载了jemalloc库,这对于多线程代码中的标准内存分配函数来说更加有效。

我们的Github上提供了每个应用程序的构建脚本和获取数据集的脚本,网址是https://github.com/arm-hpc/genomics-blog

AWS Graviton2到AWS Graviton3 -- 能力的飞跃

AWS Graviton3使用Arm Neoverse V1内核,相比之下,AWS Gravaton2使用Arm Nioverse N1内核。

Neoverse-N1-Pipeline.jpg

Neoverse-V1-Pipeline.jpg

Neoverse V1带来了显著的变化,尤其是它的内核更宽了许多,能够在每个周期执行更多指令,比其前一代处理器能提升更多指令级并行性。

使用perf-stat,我们可以获取两个平台的每周期指令数(IPC)。

Genomics-IPC.jpg

可以看出,IPC的改进在每个应用程序中都有所不同,minimap2 最多可在每个周期多增加26%的指令。此结果适用于整个工作负载,还包括I/O所花费的时间。

AWS Graviton3也是AWS系列中的第一个DDR5系统,其DDR带宽比其前一代处理器多50%。

此外,AWS Graviton3的执行频率为2.6GHz,而Graviton2为2.5GHz。

较高的IPC和频率的综合影响直接转化为运行时效率,我们将在下面进一步讨论。

哪种体系结构提供了最高的性能和最低的成本?

Runtime-for-32_2D00_worker-threads.jpg

与上一代AWS Graviton2(c6g.8xlarge)相比,性能提高了12%至31%。

同时,AWS Graviton3的性能也比Intel Icelake(c6i.8xlarge)高出10%至23%,比AMD Milan(c6a.8xlage)高出11%至21%。

Relative-Cost-of-Alignment.jpg

总结

AWS Graviton3为所有三个基因组学应用程序提供了性价比最高的平台。在AMD Milan上运行相同的应用,每个样本集的成本高出27%,在Intel Ice Lake上高出45%。这一结果意味着AWS Graviton3比AMD Milan节省了20%,比Intel Ice Lake节省了30%。

推荐阅读
关注数
5758
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息