论文部分内容阅读
MrBayes是一款在生物信息学(Bioinformatics)领域被广泛使用的软件。它使用Metropolis coupled Markov chain Monte Carlo(MC3)算法进行贝叶斯系统发育推断(Bayesian phylogenetic inference)。
随着DNA测序技术的发展,研究人员可用的真实DNA数据越来越多。特别是在新一代的DNA测序技术--大规模并行测序(massively parallelsequencing)--问世之后,可用的真实DNA数据的数量更是以指数方式增长,而且这些数据的规模越来越庞大,构成也越来越复杂。对这些大规模复杂的真实DNA数据进行分析是生物研究领域的一个热门问题,更是研究人员的一个迫切需求。然而,迄今为止,无论是串行的MrBayes MC3算法,还是它的改进与并行版本,都无法满足研究人员处理如此大规模数据的需求。幸运的是,越来越多新兴的并行或分布式平台可以为研究人员提供帮助,譬如多核中央处理器(CPU)与图形处理器(GPU)。特别是GPU,作为一个协处理器(确切的说,是一个加速器),已经在许多领域展示了自己强大的能力。
本文描述了两种新的针对MrBayes MC3的并行算法:一种是针对多核CPU集群的hMC3算法,另一种是针对CPU-GPU异构平台的nMC3算法。hMC3算法将一种针对MrBayes MC3的链间(inter-chain)并行技术与一种链内(intra-chain)并行技术结合在一起,以期获得更高的并发度。在一个异构的多核CPU集群上分析四个真实DNA数据集的实验结果表明,与单纯的链间和链内并行算法相比,hMC3算法的确将更多的CPU核心转化为更高的加速比。nMC3算法从两个层次上并行MrBayes MC3:CPU端的链间并行与GPU端的链内并行。nMC3算法使用一种流水线模型协调这两个层次的并行。这个流水线模型能够有效隐藏CPU与GPU之间的通信开销。而且,借助于这个流水线模型,在新一代的Fermi CUDA架构上,nMC3算法进一步提高了MrBayes MC3计算过程的并发度。在一台普通的装有两个GPU的个人电脑上分析五个真实DNA数据集的实验结果表明,nMC3算法比之前所有的MrBayes MC3算法(包括串行的与并行的)都要快很多(加速比最高达40倍),而且nMC3算法具有良好的伸缩性。nMC3算法的意义不仅仅是帮助研究人员缩短了实验周期,更重要的是使他们能够处理更大规模更复杂的数据集,为这个领域开辟新的研究内容提供了可能。