面对复杂的生命天书,怎样提速基因计算?

  BWA运行中,CPI很高,结合CPU的利用率和CPI的数值,可以看出BWA并不是浮点运算密集型应用,这是由BWA的算法决定,BWA通过B-W转换将基因组序列按一定规则压缩并建立索引,再通过查找和回溯来定位读段,BWA主要进行查收,匹配,这些操作都不是浮点型的操作,因此BWA不是一个浮点密集型的应用。

  图:浪潮天眼监测内存容量、内存带宽使用情况

  BWA运行中,单节点运行,内存带宽也是周期性变化,和CPU利用率表现一致,每10s内存带宽出现一次峰值。内存容量逐渐增大,这是由于运行初始阶段需要将数据写进内存。本算例内存占用45GB,BWA的内存需求,和算例规模密切相关,如reads长度,reads大小等。经过测试统计,内存需求基本是输入的待比对序列大小的5-6倍。

  图:浪潮天眼监测磁盘读写使用情况

  BWA运行中,单节点运行,在初始运行时要读入输入文件,磁盘读带宽也是和算例的大小是相关联的,本算例的最大读带宽340MB/s;磁盘写也是呈现阶段性,最高峰220MB/s。

  整体剖析

   为更加详细分析BWA的应用特征,我们用取一个时间段的CPU利用率、内存带宽、磁盘读写进行分析,如下:

  在同一时间点(5-7s),在该时间段时CPU利用率较低,IDLE上升,此时内存带宽也随之降低;而在此时,我们可以看出磁盘的读达到350MB/s;可以说明是由于此时刻磁盘读数据造成CPU利用率以及内存带宽的下降;当数据读完成后,读带宽下降,CPU利用率和内存带宽增高,如此呈现出周期性的变化。

  特征总结

  序列比对应用BWA的CPU利用率上下波动,内存容量和算例密切相关,整体内存容量需求适中;磁盘压力较大,其实阶段大规模读入输入文件,每过一段时间有一次较大读操作,这是由于BWA的代码中指定,每过一段时间,要读入1000个reads。

  基因计算行业特征

  在基因计算中还涵盖其他资源占用较多的应用,我们不能在此一一列出使用TEYE监控的数据,我们经过长期的积累,通过信号图的方式总结应用的特点,下面列出BWA和序列拼接应用VELVET的资源使用情况,其中信号强度越大代表在改方面的资源占用越多。VELVET应用在内存容量和内存带宽方面都有非常大的需求,因此在资源配置方面一定要综合考虑各方面的需求。

  基因计算集群配置方案建议

  根据以上基因测序软件的普遍特点,我们也给出了如下的集群配置建议:

  (1)基因比对、拼接等计算非浮点密集型计算应用,CPU利用率、idle%呈现规律性交替变化,并且程序起始阶段CPU利用率低,主要进行IO处理,高主频可加快进度,双路节点配置Intel E5-2680V4是个不错的选择;

  (2)内存带宽随CPU利用率交替变化并且峰值并不高,浪潮NX5440M4单节点配足8根DDR4 2400MHz内存提供153.6GB/s的带宽可充分保障内存带宽需求;内存容量需求较大,基本上是输入序列大小的5-6倍,单节点搭配8条16GB或32GB内存即可满足中小规模算例需求;对于大规模的基因拼接、比对计算,内存容量建议配置在1-2TB以上,浪潮大内存节点TS860G3最大可配至12TB内存,可充分保障计算需求。

  (3)网络压力较低,仅在读写IO时涉及到较多网络传输,普通以太万兆即可满足网络带宽需求,选择IB网络或Intel OPA网络也会在一定程度上降低延迟,提升效率。

  (4)存储读写压力适中,磁盘读写均呈现阶段性,如本测试案例,中小规模算例存储读写峰值带宽均在500MB/s以下,选用浪潮存储服务器NF5460M4即可满足需求;大规模算例如人体全基因组比对、拼接等,在程序初始阶段输入文件磁盘读取、计算结果磁盘写阶段对存储的带宽压力会比较大,此时建议选择浪潮AS13000或浪潮Tstor2000并行文件存储系统,可提供GB/s以上的带宽,更好的应对存储压力。