- 8
- 0
- 约1.1万字
- 约 17页
- 2017-11-03 发布于福建
- 举报
基于CUDA平台数据库序列比对算法加速
基于CUDA平台数据库序列比对算法加速 摘要:在生物信息学中,数据库序列比对是极为常用的操作,Smith-Waterman算法是最流行的序列比对算法,精确度高,但是计算复杂度高,在进行大量的序列比对非常耗时。另外,生物技术的发展使得已知的序列数据库变得越来越庞大,这导致进行数据库序列比对所消耗的时间也越来越长,因而有必要加速数据库序列比对算法。NVIDIA提出了CUDA编程架构,相比之前的GPGPU具有更好的可编程性,用户可以更轻松地发掘出GPU强大的计算能力。在CUDA平台上实现了Smith-Waterman的数据库序列比对算法的并行加速,速度优于已有的基于GPU的实现,超过了基于启发式算法的BLAST算法执行速度。
关键词:序列比对; Smith-Waterman算法; CUDA; GPU计算
中图分类号:TP37 文献标识码:A文章编号:2095-2163(2013)02-0044-06
0引言
数据库序列比对是生物信息学研究领域中基本性的热点应用之一。研究人员经常需要面对将新发现的基因序列与已知的基因数据库进行搜索比对的课题状况。而通过基因序列比对,或者可以找出两个序列间的相似区域,判断该基因序列的新颖性,或者将两类生物体进行全基因组(full genome)序列比对,以判断两者间的同源性等。在已有的众多序列比对算法中,Smith-Waterman算法[1]最为著名。该算法基于Needleman-Wunsch算法[2]的改进,可用于局部序列比对,能够得到精确的序列比对结果。而Smith-Waterman算法在经过Gotoh[3]的进一步完善后,算法复杂度达到了O(M×N)。其中,M和N分别为两个比对序列的长度。但是,Smith-Waterman算法仍然表现了复杂度大,计算耗时的不足,而与此同时,随着各类生物序列数据库规模的逐年增大,其计算速度已经越来越难以满足实际应用要求。
近年来,出现了很多加速方法,按其原理可将其组织为两类:一是在算法层次进行改进,在降低算法复杂性后,提高速度;二是通过硬件加速平台,提升算法速度。
对于算法改进,BLAST[4]和FASTA[5]是算法改进后的典型代表。这些算法都基于启发式算法,可查找出两个比对序列中同时存在的某个特定长度的字或者种子,对这些字或种子所在的区域实现扩展,进行相似性比对。只有当种子在两个序列中都有命中的区域时,才进行拓展比对,因此大大缩短了运行时间,但是却无法得到与Smith-Waterman算法相同的精确结果。
对于通过特殊硬件平台加速,P-NAC[6]、BISP[7]以及SAMBA[8]等利用FPGA硬件实现核心算法,速度快,但是价格昂贵,缺乏灵活性,不易于扩展。在多处理器上并行Smith-Waterman算法也是常用的方式[9-12],但是商用多核处理器价位较高,相对低价的GPU逐渐成为时新的加速平台。Liu[13]利用GPGPU实现了基于Smith-Waterman的数据库序列比对,并相比于SSEARCH获得了多达5倍的性能提升,而Manavski[14]则第一次利用NVIDIA的计算统一架构(CUDA)平台付诸实现,相较Liu的研究结论又获得18倍的加速。之后,CUDA编程环境的GPU即成为研究人员聚焦关注的平台之一[15-17],采用CUDA编程模型[18],可方便地完成划分和并行任务。本文在基于CUDA平台的NVIDIA GeForce 8800GT上加速Smith-Waterman算法,获得了约3 000MCUPS(Million Cell Updates Per Second)的比对速度,其性能超过了基于启发式算法的BLAST在通用CPU上的速度。
本文组织如下:第1节和第2节分别简单介绍基于Smith-Waterman的序列比对算法,以及NVIDIA 8800GT显卡的结构特征和CUDA编程环境,第3节提出了基于CUDA编程环境的算法实现和优化,并对性能数据进行了分析,第4节概述本文的相关工作,最后一节总结全文工作。
1序列比对算法
数据库序列比对是将查询序列与数据库中各个序列通过逐一运行序列比对算法,在完成比对后计算得到各次比对的结果分值,如果分值超过了指定阈值,就说明数据库中的该条待检序列与查询序列匹配成功,可以进入后续的其他操作流程。
序列比对算法的输入为两个序列文件,其输出为序列间的相似区域,下面是一个蛋白质序列比对的例子,具体细节如图1所示。第2期袁竞杰,等:基于CUDA平台的数据库序列比对算法加速智能计算机与应用第3卷 图1 蛋白质序列比对示例
Fig.1 Example of protein sequence comparison
由图1可见,字符串代表由
原创力文档

文档评论(0)