基于CPU+GPU异构的高并发序列比对计算加速方法技术

技术编号:32349493 阅读:13 留言:0更新日期:2022-02-20 02:13
本发明专利技术公开了基于CPU+GPU异构的高并发序列比对计算加速方法,包含以下步骤:BWA

【技术实现步骤摘要】
基于CPU+GPU异构的高并发序列比对计算加速方法


[0001]本专利技术涉及生物序列比对领域,特别涉及基于CPU+GPU异构的高并发序列比对计算加速方法。

技术介绍

[0002]生物序列比对是计算机领域经典的文本比对问题在生物领域的应用。随着不断涌现的新型分子生物学技术的发展 ,随之而来的比如基因变异、RNA表达、蛋白质和基因相互作用等分子生物学研究需要研究人员采用高通量的方法去解释。这对高性能计算提出了新的挑战。高通量测序时代的挑战不再是数据的产生,而是数据存储,处理和分析。第三代测序技术的发展将进一步加快测序速度,同时产生较长的测序片段,对序列比对技术的发展提出了更高的要求。与此同时,计算机硬件平台也在近几年飞速发展, 不断推陈出新,新的多核平台和众核平台不断出现,众核处理器加速设备如GPU使高性能计算机的性能快速提高,GPU异构平台正成为构建高性能计算机的重要方式。这也使得计算机体系结构变得越来越复杂,给计算程序的优化带来了新的难题。
[0003]同时,在生物序列比对领域中,采用CPU+GPU异构平台的方式对算法进行加速时一个常见的处理方式。
[0004]比如,文献《基于GPGPU的生物序列快速比对》(第一作者马海晨,发表于期刊《计算机工程》第38卷第4期,2012年2月),是在CPU

GPU 异构平台下,提出一种高效的生物序列比对方案。该方案利用GPU的并行处理能力,通过对读延迟、写延迟、重组函数及数据传输进行优化,在OpenCL 框架下重构Smith
‑ꢀ/>Waterman 算法,加快生物序列比对速度。即该文献主要是对SW算法(即Smith
‑ꢀ
Waterman 算法)进行优化。
[0005]再比如,工程硕士论文《生物序列分析算法的CPU_GPU异构并行优化关键技术研究》(作者万文,国防科学技术大学研究生院,2012年3月),其核心思想同样是基于CPU和GPU构建的异构系统,主要是对SW算法(即Smith

Waterman算法)进行优化。
[0006]上述技术方案,都是对某个具体算法(例如SW算法、FM

index算法)进行优化或者改进,这些技术方案均是聚焦于算法本身,利用GPU的特性,来解决数据并行的问题,通过对所采用具体算法的改进,来达到生物序列比对速度提升的目的,其缺点在于:在进行生物序列比对时,要先找到一段比较精确的匹配子段作为seed,对于不同的reads,其包含的SMEM长度、位置、数量都有很大的不同;当在GPU平台用采用每个线程处理一个reads的任务划分方式时,这会造成不同线程之间严重的不同步,包含较短SMEM的reads需要等待包含较长SMEM的reads查找完毕, 而对于包含较短SMEM的reads,其包含的SMEM的个数又更多,这样包含较长SMEM的reads又反过来需要等待包含较短SMEM的reads,这种互相等待的情况导致计算资源利用率极低,加速效果非常有限。上述技术方案聚焦于数据并行的问题(进一步加大数据并行的能力),并不能克服所述缺点。
[0007]同样,由于BWA

MEM的这种与输入数据高度相关的seeding方式,每个reads包含的seed数量、长度都会有很大不同,这又会影响下一个模块中根据seed生成chain的过程,导
致生成chain的模块的不同线程同步性很差,进一步限制了加速效果。由于算法的运行特征与输入数据高度相关,这些方法无法同时适合不同特征的输入数据。 GPU平台对于同一warp内指令一致性的要求使BWA

MEM算法的加速效果受到了严重限制。因此,对于原有的BWA

MEM算法同样不能解决上述问题。

技术实现思路

[0008]本专利技术的目的在于克服现有技术的缺点与不足,提供基于CPU+GPU异构的高并发序列比对计算加速方法。
[0009]本专利技术的目的通过以下的技术方案实现:基于CPU+GPU异构的高并发序列比对计算加速方法,包含以下步骤:BWA

MEM算法代码重构步骤:对于BWA

MEM算法,简化其数据结构并优化部分循环及逻辑判断语句,使其适合在GPU架构上运行;CPU上任务并发处理步骤:在CPU上,对于待比对的序列集,首先根据GPU的处理线程数来设定序列的数据块大小,完成序列集的划分,第一次形成多个并发任务;然后CPU数据线程分块读取序列数据,接着进行序列数据对比;GPU上数据并发处理步骤:在GPU上,运行代码重构后的BWA

MEM算法,用以完成序列数据对比的数据并发;GPU上任务并发处理步骤:在GPU上,对于序列数据对比的数据并发处理过程中产生的种子集和链,将相同或相邻的长度、位置、数量的种子集划分为同一数据块,链做同样处理,由此完成种子集与链的划分,第二次形成多个并发任务。
[0010]所述序列数据对比的数据并发处理过程中产生的种子集和链,是指序列数据对比过程中,寻找待比对序列片段和参考序列的所有相同公共子字符串,将其中最小长度不小于设定值的相同公共子字符串作为“种子”,多个“种子”的集合,即为“种子集”;然后,将在参考序列上位置靠近的种子当成“链”,存储在一起,并按种子长度从大到小的顺序,给每个链上的种子进行排序。
[0011]所述寻找待比对序列片段和参考序列的所有相同公共子字符串,是通过使用BWA

MEM算法中的FM

Index算法和后向搜索算法来完成的。
[0012]所述序列数据对比是通过开启两个调度线程以流水线形式来处理的:初始化一个主机线程等待,另一个主机线程分步骤一、二进行工作;当工作的主机线程进行到步骤二时,等待线程激活,等待的主机开始处理步骤一;所述步骤一为:获取内存数据后,调度GPU进行找种子、扩展任务,并把GPU计算得到的种子的扩展得分集作为中间数据从GPU内存拷贝到主机内存;所述步骤二为:生成sam数据并输出文件。
[0013]所述代码重构后的BWA

MEM算法是通过全局工作列表来支持其异步执行, GPU为每个序列比对分析任务分配一个本地工作列表,并发比对分析任务共用一个远程工作列表;在系统运行期间,GPU周期性地报告产生和消耗的工作项;一旦工作项的总数为零,处理终止;GPU中包含三个线程:接收线程、发送线程和工作线程,前两个线程用于GPU 之间的通信,最后一个线程用于本地工作项的处理;每个GPU接收到来自上一个设备的远程工作项,交给接收线程来完成工作项的分流;工作线程和接收线程都会提交GPU kernel来完成它们
的工作,接收线程的kernel提交到独立的流上,并被分配更高的优先级。
[0014]所述简化BWA

MEM算法的数据结构,是指使用CUDA语言对数据结构进行了重构,去掉数据结构中的复杂结构,所述复杂结构包括多级指针、结构体。
[0015]所本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,包含以下步骤:BWA

MEM算法代码重构步骤:对于BWA

MEM算法,简化其数据结构并优化部分循环及逻辑判断语句,使其适合在GPU架构上运行;CPU上任务并发处理步骤:在CPU上,对于待比对的序列集,首先根据GPU的处理线程数来设定序列的数据块大小,完成序列集的划分,第一次形成多个并发任务;然后CPU数据线程分块读取序列数据,接着进行序列数据对比;GPU上数据并发处理步骤:在GPU上,运行代码重构后的BWA

MEM算法,用以完成序列数据对比的数据并发;GPU上任务并发处理步骤:在GPU上,对于序列数据对比的数据并发处理过程中产生的种子集和链,将相同或相邻的长度、位置、数量的种子集划分为同一数据块,链做同样处理,由此完成种子集与链的划分,第二次形成多个并发任务。2.根据权利要求1所述基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,所述序列数据对比是通过开启两个调度线程以流水线形式来处理的:初始化一个主机线程等待,另一个主机线程分步骤一、二进行工作;当工作的主机线程进行到步骤二时,等待线程激活,等待的主机开始处理步骤一;所述步骤一为:获取内存数据后,调度GPU进行找种子、扩展任务,并把GPU计算得到的种子的扩展得分集作为中间数据从GPU内存拷贝到主机内存;所述步骤二为:生成sam数据并输出文件。3.根据权利要求1所述基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,所述代码重构后的BWA

MEM算法是通过全局工作列表来支持其异步执行, GPU为每个序列比对分析任务分配一个本地工作列表,并发比对分析任务共用一个远程工作列表;在系统运行期间,GPU周期性地报告产生和消耗的工作项;一旦工作项的总数为零,处理终止;GPU中包含三个线程:接收线程、发送线程和工作线程,前两个线程用于GPU 之间的通信,最后一个线程用于本地工作项的处理;每个GPU接收到来自上一个设备的远程工作项,交给接收线程来完成工作项的分流;工作线程和接收线程都会提交GPU kernel来完成它们的工作,接收线程的kernel提交到独立的流上,并被分配更高的优先级。4.根据权利要求1所述基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,简化BWA

MEM算法的数据结构,是指使用CUDA语言对数据结构进行了重构,去掉数据结构中的复杂结构,所述复杂结构包括多级指针、结构体。5.根据权利要求1所述基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,优化BWA

MEM算法的部分循环及逻辑判断语句,是指对部分循环进行等效展开,对逻辑判断语句进行重构。6.根据权利要求1所述基于CPU+GPU异构的高并发序列比对计算加速方法,其特征在于,所述多个并发任务所对应形成数据划分块,通过数据调度器及设定的调度规则将最需要访问的数据划分块优先载入缓存中。7.根据权利要...

【专利技术属性】
技术研发人员:张巍林超宁张崇
申请(专利权)人:广州嘉检医学检测有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1