论文部分内容阅读
序列数据库搜索是生物信息学中的重要应用,具有计算密集型和可并行性的特点。由于生物技术的发展,序列数据库以指数增加,使得搜索越来越耗时,传统的计算机已经难以满足计算需求。基于图形处理单元(GPU)的统一计算设备架构(CUDA)的推出,使得GPU作为一种新的并行计算平台越来越多的应用到生物计算当中。
传统的序列数据库搜索基于序列的两两比对,无法考虑序列位置的可能性概率,所以具有优秀统计能力的概率模型逐渐被引入到搜索当中,谱隐马尔科夫模型就是其中一种。目前已经发布的利用谱隐马尔科夫模型进行序列数据库搜索的工具为HMMER,该工具最新的3.0版本采用一种启发式的过滤方法使得搜索速度已经和著名的序列数据库搜索工具BLAST持平,如果能将该工具中的搜索算法加速,则会有效促进序列数据库搜索的发展。针对以上论述,本文的主要研究内容包括以下两个方面:
(1)使用CUDA对HMMER3.0中的序列库搜索算法进行加速。算法中采用了块间并行和单个块内线程并行的方式,将原有串行算法移植到CUDA平台上,并进一步实现内存和性能的优化,获得了20%左右的性能提升;
(2)结合多机分布式处理和GPU高性能运算的优势,采用MPI和CUDA相结合的方式实现HMMER3.0中搜索算法的多机分布式处理,充分利用了节点间的协作,实现粗粒度和细粒度并行的结合,合理利用了系统资源,达到了较好的效果。
本文的贡献在于首次将HMMER3.0版本的序列库搜索程序移植到GPU上,并采用分布式处理的方式,完成MPI+CUDA两层模型的构建和实现,经过测试,两种实现都取得了较好的加速。