CN104504303B - 基于cpu+gpu异构***的序列比对方法 - Google Patents

基于cpu+gpu异构***的序列比对方法 Download PDF

Info

Publication number
CN104504303B
CN104504303B CN201410522707.9A CN201410522707A CN104504303B CN 104504303 B CN104504303 B CN 104504303B CN 201410522707 A CN201410522707 A CN 201410522707A CN 104504303 B CN104504303 B CN 104504303B
Authority
CN
China
Prior art keywords
sequence
matrix
seqset1id
sets
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410522707.9A
Other languages
English (en)
Other versions
CN104504303A (zh
Inventor
朱香元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhaoqing University
Original Assignee
Zhaoqing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhaoqing University filed Critical Zhaoqing University
Priority to CN201410522707.9A priority Critical patent/CN104504303B/zh
Publication of CN104504303A publication Critical patent/CN104504303A/zh
Application granted granted Critical
Publication of CN104504303B publication Critical patent/CN104504303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公开了一种大规模生物序列比对及其基于异构***的并行处理方法。首先,对序列优化存储,设计异构***负载平衡方法;然后,设计异构***内存优化方法,包括满足合并访问条件的序列存储方法、相似矩阵存储和访问方式、得分矩阵压缩存储,解决由于异构***存储空间的匮乏而导致的实际计算性能低下;最后,基于内存预分配和复用策略,提出粗粒度序列比对并行方法。本发明基于CPU+GPU异构计算平台,充分利用了负载平衡和内存优化技术,从而显著提高大规模生物序列比对的处理效率。

Description

基于CPU+GPU异构***的序列比对方法
技术领域
本发明属于计算机技术与生物基因技术相关联的交叉学科领域,涉及一种运行于CPU+GPU异构***的序列比对方法,尤其是大规模序列比对方法。
背景技术
序列是生物信息的载体,包括DNA(脱氧核糖核酸)、RNA(核糖核酸)和蛋白质等。生物序列比对(sequence alignment)是以序列为研究对象,通过比较序列中各字符间的对应关系或字符的对比排列,发现序列之间的相似性,辨别序列之间的差异,从而推测其结构、功能以及进化上的联系。序列比对是生物序列分析领域最重要的研究方向之一,已被广泛应用于进化分析、功能预测、相似性搜索、生物制药、疾病诊断与治疗等方面。
随着GPU并行处理能力的不断提升,GPU已被广泛应用于生物信息学中的数据处理。当前基于CPU+GPU异构***的序列比对方法包括MUMmerGPU、S-W、CUDA-BLAST、进化树的构建等。对这些方法进行分析,发现现有方法主要存在以下几个问题:
(1)缺乏异构计算***负载平衡有效方法
序列比对时间与序列长度、序列之间的距离、以及序列数目相关。现有方法没有考虑这些参数对比对时间的影响,不能较好地指导负载平衡方法的设计。
(2)缺乏访存控制有效机制
GPU采用分级存储器模型,包括片上和片外存储器,其中片上存储器包括共享存储器、寄存器和各级cache,片外存储器包括全局、常数、纹理和局部存储器。片上存储器拥有较高的访问速率,而访问片外存储器需要很长的时间延迟。现有的方法中一般仅考虑各类存储器的特性选择合适的访问和存储方式,而没有考虑序列比对的应用特点,详细分析序列比对方法的计算过程,找出访问最多、最消耗GPU内存的关键点,对它们进行访存优化。
(3)可扩展能力不足
现有的方法通常应用CPU+GPU异构***加速已有的序列比对方法,由于原有方法的可扩展性不强,从而导致现有的方法可扩展能力不足。随着生物数据的急剧增加,可扩展性已成为衡量序列比对方法好坏的重要标准之一。
发明内容
本发明的所要解决的技术问题是提供一种运行于CPU+GPU异构***的大规模序列比对方法,以克服现有技术中大规模序列比对执行效率不高的问题。
根据本发明的第一个实施方案,提供运行于CPU+GPU异构***的序列比对方法或大规模序列比对方法,该方法包括以下过程:
1)对序列进行优化存储,和实施异构***负载平衡,其中在序列从CPU传输到GPU之前,先对序列进行序列优化存储;
2)设计内存优化方式,该优化方式包括:满足合并访问条件的序列存储方式、相似矩阵存储和访问方式和得分矩阵压缩存储方式;和
3)基于内存预分配和复用策略,采用粗粒度并行方式进行比对(或并行比对)。
一般来说,以上所述的序列优化存储包括以下二个子步骤:
排序:序列按长度进行排序来减少相邻线程处理序列的长度差异,以减少线程间的等待时间;和
连结:将经过排序后的16条有序序列组织成序列集(sequence set);优选的是,将同一序列集中的序列进行连结,连结后的二条或二条以上的序列称为序列组(sequencegroup),一个序列集中序列组的长度大致与该序列集中最长的序列长度相等;更优选的是,在连结的序列之间***序列终止符,终止符是进行新一轮序列比对的标识。
优选的是,内存优化方式包括(但不限于):
(1)满足合并访问的序列存储方式:当所有的序列被组织成包含16条序列组的序列集后,序列存储成字符矩阵的形式;优选的是,这些序列集以交织的方式存储;更优选的是,每个交织的子集由序列组中的8个字符组成,即:首先存储序列集第一个序列组的8个字符,然后再存储该序列集第二个序列组的8个字符,由此类推;
(2)相似矩阵存储和访问方式:相似矩阵的访问是随机的,并且它的大小完全依赖于所比对的序列;和/或
(3)得分矩阵压缩存储方式;优选的是,得分矩阵用来跟踪最优得分路径,记录比对过程中在每条序列***空位的起始位置以及空位的数目。
一般,得分矩阵具有以下三个特征:(1)所有的元素初始化为零;(2)在矩阵中存在许多连续的、且具有相同值的元素,被称之为特征值,用localstop表示,它是停止向序列***空位的标识;(3)存在一些元素,它们的值连续递减,用来记录***空位的数目。
优选的是,采用压缩方法MRLE来压缩得分矩阵,并且将原矩阵压缩成两个行向量Av和Ar。其中Av用来存储连续相同值或连续递减值的起始元素和它的重复或递减次数,值和次数以交织的方式存储。Ar存储原矩阵中每行第一个元素在Av中的位置。优选的是,在压缩过程中,对于连续相同值或连续递减值,仅存储起始元素和它的重复或递减次数。
优选的是,基于内存预分配和复用策略,采用粗粒度并行方式进行比对的过程包括:
(1)运行一种内存预分配和复用策略,其中将一对序列集分配给一个线程进行比对;
(2)常数时间工作任务获取过程,其中序列进行变换后,n条序列被组织成l个序列集{0,1,…,l-1};和
(3)粗粒度序列比对并行过程,其中一个线程处理一个序列集与另一个序列集之间的两两比对。
优选的是,在(2)任务获取过程中,序列集之间的两两比对(Seqset1ID,Seqset2ID)用一个l×l的左下三角矩阵来表示。
优选的是,上述的常数时间工作任务获取过程包括:a)首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID;和b)利用所求出的行号RowID和列号ColID和已知的l,求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。
下面进一步详细描述本发明的实施方案。
本申请提出一种运行于CPU+GPU异构***的序列比对方法或大规模序列比对方法,其特征在于,首先对序列进行优化存储,提出异构***负载平衡方法;然后设计内存优化方法,包括满足合并访问条件的序列存储方法、相似矩阵存储和访问方式、得分矩阵压缩存储,解决由于异构***存储空间匮乏而导致的实际计算性能低下;最后基于内存预分配和复用策略,提出适合于大规模序列比对的粗粒度并行方法。
对于提出异构***负载平衡方案,其特征在于,序列从CPU传输到GPU之前,先进行优化存储,以更好地适应GPU并行处理的特性。序列优化存储分成排序和连结等二个步骤。
步骤1.排序:序列按长度进行排序来减少相邻线程处理序列的长度差异,以减少线程间的等待时间。
步骤2.连结:将经过排序后的16条有序序列组织成序列集(sequence set),一个序列集由16个线程来处理。为了解决不同的序列集之间序列的长度仍然存在差异的问题,将同一序列集中的序列进行连结,连结后的二条或二条以上的序列称为序列组(sequencegroup),使得一个序列集中序列组的长度大致与该序列集中最长的序列长度相等。经过序列的连结,能更好地平衡各线程之间的工作负载。在连结的序列之间***序列终止符,终止符是进行新一轮序列比对的标识。
对于提出内存优化方案,其特征在于,
(1)满足合并访问的序列存储方法
当所有的序列被组织成包含16条序列组的序列集后,序列存储成字符矩阵的形式。这些序列集以交织的方式存储。每个交织的子集由序列组中的8个字符组成。首先存储序列集第一个序列组的8个字符,然后再存储该序列集第二个序列组的8个字符,由此类推。因为每个序列集中包含16个序列组,16个线程可从相邻的地址同时装载8个字符,这样,能进行128字节的合并访问。
(2)相似矩阵存储和访问方法
相似矩阵的访问是随机的,并且它的大小完全依赖于所比对的序列。对于这种频繁访问的数据,不能存放在GPU的全局内存,因为全局内存的访问延迟很大。但是,相似矩阵的随机特性却非常适用于纹理内存(texture memory)和常数内存(constant memory)。纹理内存是一种只读存储器,可以通过缓存加速访问,并且不需要通过合并访问来提供好的性能。与纹理内存一样,常数内存是另一种只读的存储器,也拥有缓存加速。常数内存能广播1个读操作的数据到half-warp(即16个线程),能有效地节约15个读操作,这两种内存都很适合于随机访问。将相似矩阵分别存放在纹理内存和常数内存,通过小规模实验,比较两种存储器的性能,最后确定性能最好的存储器存储相似矩阵。已进行小规模实验,在NVIDIATelsa C2050 GPU平台(每个流处理器分别拥有8KB的常数内存和12KB的纹理内存)比对800条平均长度为430个残基的序列,相似矩阵存储于常数内存比存储于纹理内存性能提升3.5%。因此,选择常数内存存储相似矩阵。
(3)得分矩阵压缩存储方法
得分矩阵用来跟踪最优得分路径,记录比对过程中在每条序列***空位的起始位置以及空位的数目,这需要较高的空间复杂度。由于GPU内存容量有限,得分矩阵的存储方法给异构***大规模序列比对方法的实现带来极大的挑战。
一般,得分矩阵具有以下三个特征:(1)所有的元素初始化为零;(2)在矩阵中存在许多连续的、且具有相同值的元素,被称之为特征值,用localstop表示,它是停止向序列***空位的标识;(3)存在一些元素,它们的值连续递减,用来记录***空位的数目。鉴于得分矩阵的特征,提出一个新的压缩方法MRLE来压缩得分矩阵,减少内存消耗。
MRLE方法将原矩阵压缩成两个行向量Av和Ar。Av用来存储连续相同值或连续递减值的起始元素和它的重复或递减次数,值和次数以交织的方式存储,Ar存储原矩阵中每行第一个元素在Av中的位置。在压缩过程中,对于连续相同值或连续递减值,仅存储起始元素和它的重复或递减次数。MRLE算法的目标是减少连续相同值或连续递减值的存储,首先考虑连续相同的值(即零或特征值localstop),减少相同值的存储;然后考虑连续递减的值(连续地递减1),进一步提高压缩效果。
对于基于内存预分配和复用策略,提出适合于大规模序列比对的粗粒度并行方法,其特征如下:
(1)内存预分配和复用策略
在CUDA编程模型中使用动态内存分配将导致性能的极大下降。因此,采用将一对序列集分配给一个线程进行比对的方法。由于序列集中可能包含连结的序列,一个线程将执行大于16×16个序列对的比对工作。设计这种粗粒度并行方式的主要原因是希望一个线程所执行的所有比对工作能共享同一段内存空间,所有线程执行所需要的内存空间根据序列集对中最长的2条序列长度预先分配。由于这段内存空间是根据序列集对中最长的2条序列的长度而分配的,这就意味着所有序列集对中其他的序列对都能共享这段内存空间。与在运行时动态分配内存相比,使用内存的预分配不仅能节约时间,还能获得至少256倍的内存使用率。
(2)常数时间工作任务获取方法
序列进行变换后,n条序列被组织成l个序列集{0,1,…,l-1}。序列集之间的两两比对(Seqset1ID,Seqset2ID)可用一个l×l的左下三角矩阵来表示。为了确保一个线程在某一时刻仅处理一对序列集之间的比对,提出常数时间工作任务获取方法,得出(Seqset1ID,Seqset2ID)与线程threadID之间的一一对应关系。
首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID。通过分析发现,当threadID∈S={1,3,6,10,L,l+l(l-1)/2}时,RowID和ColID均等于方程n2+n=2threadID的正整数根与1的差,即其中X1表示方程n2+n=2threadID的正实数根。当时,RowID等于方程n2+n=2threadID的正实数根的上整,ColID等于正实数根的小数部分与RowID乘积后的上整,即利用所求出的行号RowID和列号ColID和已知的l,可求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。由于三角矩阵的行号从0开始,所以RowID和ColID需减去1。
(3)粗粒度序列比对并行方法
充分挖掘序列两两比对的潜在并行性,设计粗粒度并行方法。一个线程处理一个序列集与序列集之间的两两比对,这就意味着一个线程将处理大于16×16的序列之间的两两比对,因为序列集中可能存在连结的序列。采用粗粒度并行方式的主要原因在于可在线程间重复使用GPU内存。
发明的有益效果:
本发明的技术主要构思是充分挖掘异构计算平台的性能,提出基于CPU+GPU异构***的大规模序列比对并行解决方法。在此方法中,充分考虑负载平衡和内存优化对异构计算平台性能的影响,通过对序列优化存储,设计异构***负载平衡方法。通过设计满足合并访问条件的序列存储方法、相似矩阵存储和访问方式和得分矩阵压缩存储,提出异构***内存优化方法,解决由于异构***存储空间的匮乏而导致的实际计算性能低下。最后基于内存预分配和复用策略,提出粗粒度序列比对并行方法,显著提高整个***的比对处理效率。
本发明不仅设计基于CPU+GPU异构***的大规模序列比对并行处理解决方案,为生物信息学提供实际可用的序列比对工具,还为设计其他数据密集型应用的异构***解决方案提供新的思路,从而为GPU在生物信息学中更广泛的应用奠定基础。同时还将丰富传统并行处理的研究内容,推动生物信息学和高性能计算的研究与发展。
另外,本发明所述方法是针对当前流行的CPU+GPU异构计算平台而设计,运行于Linux操作***之上。用户只需要一台多核计算机和一块GPU(俗称显卡)而不需要增加任何硬件成本即可应用此方法比对平均长度为1,000的8,000条生物序列。应用本发明所述方法比采用计算机集群、FPGA或Cell BE等对硬件有特殊要求的方法有无可比拟的优势。
附图说明
图1为本发明所述方法示意图;
图2为序列优化存储方法;
图3为满足合并访问的序列存储方法;
图4为用左下三角矩阵表示的序列集两两比对示意图;
图5为本发明所述方法CUDA-MAFFT与方法MAFFT的比对精度对比示意图。
图6为本发明所述方法CUDA-MAFFT与方法MAFFT的加速比对比示意图。
具体实施方式:
以下结合附图对本发明作进一步说明。
一种运行于CPU+GPU异构***的大规模序列比对方法,其特征在于,首先对序列进行优化存储,提出异构***负载平衡方法;然后设计内存优化方法,包括满足合并访问条件的序列存储方法、相似矩阵存储和访问方式、得分矩阵压缩存储,解决由于异构***存储空间匮乏而导致的实际计算性能低下;最后基于内存预分配和复用策略,提出适合于大规模序列比对的粗粒度并行方法。
所述异构***负载平衡方法具体过程如下:
步骤1.排序。序列按长度的降序进行排列。
步骤2.连结。将经过排序后的16条有序序列组织成序列集,将同一序列集中的序列进行连结,使得一个序列集中序列组的长度尽可能地与该序列集中最长的序列长度相等。在连结的序列之间***序列终止符,终止符是进行新一轮序列比对的标识。
所述的满足合并访问条件的序列存储方法和相似矩阵存储和访问方式在发明内容的技术方案中已经详细叙述,此处不再赘述。
所述的得分矩阵压缩存储方法具体过程如下:
MRLE方法将原矩阵压缩成两个行向量Av和Ar。其中Av用来存储连续相同值或连续递减值的起始元素和它的重复或递减次数,Ar存储原矩阵中每行第一个元素在Av中的位置。
举例说明如下:
矩阵(1)有10行和10列,其特征元素localstop的值为21。使用MRLE方法将矩阵(1)压缩成两个行向量Av和Ar,如矩阵(2)和(3)所示。为了说明MRLE的压缩过程,将Av和Ar表示成矩阵的形式。矩阵(1)的第一行有10个连续相同的特征值21,因此Av[0]=21,接着,将元素21的重复次数加上2localstop的值52存储在Av[1]中。第一行的10元素被压缩成2个元素分别存放在Av[0]和Av[1]中,在此省略矩阵(1)其他行的压缩过程。Ar=[0,2,12,22,29,37,46,54,60,68,75],这表示从Av[0]到Av[1],这2个元素是矩阵(1)的第一行的所有元素经过压缩后的值。从Av[2]到Av[11]这10个元素是矩阵(1)的第二行的所有元素经过压缩后的值,以此类推。Ar中的元素指示着矩阵(1)中每一行的第一个元素经过压缩后存放在Av中的位置。
[0 2 12 22 29 37 46 54 60 86 75] (2)
所述的常数时间工作任务获取方法具体过程如下:
输入:序列集的总数l和线程号threadID
输出:线程号threadID执行两两比对的序列集对(SeqsetID1,SeqsetID2)
步骤1:计算方程n2+n=2threadID的正实数根X1
步骤2:若X1mod1>0,则
否则
步骤3:计算得出Seqset1ID=l-RowID-1;
Seqset2ID=Seqset1ID+ColID。
举例说明如下:
有6个序列集(即l=6),则共有21个序列集对需要比对(即l+l(l-1)/2=21)。对于线程15,方程x2+x=2×15=30的正整数根为5,则线程15所在的行RowID和列ColID均等于4,其对应处理的Seqset1ID和Seqset2ID分别等于1和5。对于线程17,方程x2+x=2×17=34的正实数根X1=5.35。线程17所在的行通过RowID=5和X1=5.35的小数部分求得ColID=1(第8行),其对应处理的Seqset1ID和Seqset2ID分别等于0和1。矩阵(4)列出了本例所有线程threadID与序列集对(Seqset1ID,Seqset2ID)的对应关系。
所述的基于内存预分配和复用策略以及粗粒度序列比对并行方法在发明内容的技术方案中已经详细叙述,此处不再赘述。
为测评CUDA-MAFFT的性能,定义Q得分、TC得分以及加速比来评估其性能。Q得分定义为比对结果中正确比对的字符对的数目与所有字符对的数目的商。TC得分定义为比对结果中正确比对的列数与所有列数的商。加速比定义为:加速比=TCUDA-MAFFT/TMAFFT,其中TCUDA-MAFFT为CUDA-MAFFT方法的比对时间,TMAFFT为MAFFT方法的比对时间。
实施例1:
实验分别测试两组数据,一组为传统的序列比对Benchmarks,包括BAliBASE3.0、IRMBASE2.0、PREFAB4.0和OXBench1.3,其目的用于计算CUDA-MAFFT方法的Q/TC得分,以评估其比对精度。一组为随机地搜索NCBI非冗余的蛋白质序列数据库得到的大规模序列集合,用于计算CUDA-MAFFT方法与MAFFT方法的加速比,以评估CUDA-MAFFT方法处理大规模序列比对的效率。
测试例1:分别运行串行MAFFT和CUDA-MAFFT两种方法,实验数据为4组Benchmarks,收集两种方法在4组Benchmarks下的Q得分和TC得分。实验结果如附图5所示,结果表明,CUDA-MAFFT维持与MAFFT接近的比对精度,这充分说明了将MAFFT方法移植到GPU的有效性。
测试例2:分别运行串行MAFFT、多线程MAFFT和CUDA-MAFFT,实验数据通过随机地搜索NCBI非冗余的蛋白质序列数据库得到的10个数据集。这10个数据集序列长度从30到1,000,序列的数目从1,000到8,000。分别计算这两种方法下的序列比对时间,求出在TeslaC2050、M2090和K20m GPU上的加速比,实验结果如附图6所示。当序列的平均长度增加时,加速比下降,这是因为MAFFT方法的空间复杂性至少为O(N2)+O(L2)+O(NL),且极大地依赖于序列的相似程度,其中N和L分别为序列的数目和序列的平均长度。当序列的长度增加时,需要消耗更多的内存,从而导致了CUDA-MAFFT方法的性能瓶颈。
实验结果表明,与串行和多线程MAFFT-LINSi相比,在维持接近比对精度的同时,在Tesla K20m GPU上分别获得了56.7和7.1的性能加速。另外,随着比对序列集合的增加,异构并行***负载平衡及内存优化策略的优势不断扩大,CUDA-MAFFT方法的优势更为明显。

Claims (14)

1.运行于CPU+GPU异构***的序列比对方法或大规模序列比对方法,该方法包括以下过程:
1)对序列进行优化存储,和实施异构***负载平衡,其中在序列从CPU传输到GPU之前,先对序列进行序列优化存储;
2)设计内存优化方式,该优化方式包括:满足合并访问条件的序列存储方式、相似矩阵存储和访问方式和得分矩阵压缩存储方式;
其中内存优化方式包括:
(1)满足合并访问的序列存储方式:当所有的序列被组织成包含16条序列组的序列集后,序列存储成字符矩阵的形式;这些序列集以交织的方式存储;每个交织的子集由序列组中的8个字符组成,即:首先存储序列集第一个序列组的8个字符,然后再存储该序列集第二个序列组的8个字符,由此类推;
(2)相似矩阵存储和访问方式:相似矩阵的访问是随机的,并且它的大小完全依赖于所比对的序列;和/或
(3)得分矩阵压缩存储方式:得分矩阵用来跟踪最优得分路径,记录比对过程中在每条序列***空位的起始位置以及空位的数目;其中采用压缩方法MRLE来压缩得分矩阵,并且将原矩阵压缩成两个行向量Av和Ar;
3)基于内存预分配和复用策略,采用粗粒度并行方式进行比对或并行比对;
其中:采用粗粒度并行方式进行比对的过程包括:
(1)运行一种内存预分配和复用策略,其中将一对序列集分配给一个线程进行比对;
(2)常数时间工作任务获取过程,其中序列进行变换后,n条序列被组织成l个序列集{0,1,…,l-1};和
(3)粗粒度序列比对并行过程,其中一个线程处理一个序列集与另一个序列集之间的两两比对。
2.根据权利要求1所述的方法,其中序列优化存储包括以下二个子步骤:
排序:序列按长度进行排序来减少相邻线程处理序列的长度差异,以减少线程间的等待时间;和
连结:将经过排序后的16条有序序列组织成序列集;将同一序列集中的序列进行连结,连结后的二条或二条以上的序列称为序列组,一个序列集中序列组的长度大致与该序列集中最长的序列长度相等;在连结的序列之间***序列终止符,终止符是进行新一轮序列比对的标识。
3.根据权利要求1或2所述的方法,其中得分矩阵具有以下三个特征:(1)所有的元素初始化为零;(2)在矩阵中存在许多连续的、且具有相同值的元素,被称之为特征值,用localstop表示,它是停止向序列***空位的标识;(3)存在一些元素,它们的值连续递减,用来记录***空位的数目。
4.根据权利要求1或2所述的方法,其中Av用来存储连续相同值或连续递减值的起始元素和它的重复或递减次数,值和次数以交织的方式存储;和/或,
Ar存储原矩阵中每行第一个元素在Av中的位置。
5.根据权利要求3所述的方法,其中Av用来存储连续相同值或连续递减值的起始元素和它的重复或递减次数,值和次数以交织的方式存储;和/或,
Ar存储原矩阵中每行第一个元素在Av中的位置。
6.根据权利要求4所述的方法,其中,在压缩过程中,对于连续相同值或连续递减值,仅存储起始元素和它的重复或递减次数。
7.根据权利要求5所述的方法,其中,在压缩过程中,对于连续相同值或连续递减值,仅存储起始元素和它的重复或递减次数。
8.根据权利要求1、2、5-7中任一项所述的方法,其中在采用粗粒度并行方式进行比对的过程的步骤(2)任务获取过程中,序列集之间的两两比对(Seqset1ID,Seqset2ID)用一个l×l的左下三角矩阵来表示。
9.根据权利要求3所述的方法,其中在采用粗粒度并行方式进行比对的过程的步骤(2)任务获取过程中,序列集之间的两两比对(Seqset1ID,Seqset2ID)用一个l×l的左下三角矩阵来表示。
10.根据权利要求4所述的方法,其中在采用粗粒度并行方式进行比对的过程的步骤(2)任务获取过程中,序列集之间的两两比对(Seqset1ID,Seqset2ID)用一个l×l的左下三角矩阵来表示。
11.根据权利要求1、2、5-7、9-10中任一项所述的方法,其中常数时间工作任务获取过程包括:a)首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID;和b)利用所求出的行号RowID和列号ColID和已知的l,求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。
12.根据权利要求3所述的方法,其中常数时间工作任务获取过程包括:a)首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID;和b)利用所求出的行号RowID和列号ColID和已知的l,求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。
13.根据权利要求4所述的方法,其中常数时间工作任务获取过程包括:a)首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID;和b)利用所求出的行号RowID和列号ColID和已知的l,求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。
14.根据权利要求8所述的方法,其中常数时间工作任务获取过程包括:a)首先得出序列集Seqset1和Seqset2在l×l左下三角矩阵中的行号RowID和列号ColID;和b)利用所求出的行号RowID和列号ColID和已知的l,求出线程threadID处理的序列集对(Seqset1ID,Seqset2ID),其中Seqset1ID=l-RowID,Seqset2ID=Seqset1ID+ColID。
CN201410522707.9A 2014-09-29 2014-09-29 基于cpu+gpu异构***的序列比对方法 Active CN104504303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410522707.9A CN104504303B (zh) 2014-09-29 2014-09-29 基于cpu+gpu异构***的序列比对方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410522707.9A CN104504303B (zh) 2014-09-29 2014-09-29 基于cpu+gpu异构***的序列比对方法

Publications (2)

Publication Number Publication Date
CN104504303A CN104504303A (zh) 2015-04-08
CN104504303B true CN104504303B (zh) 2018-09-28

Family

ID=52945700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410522707.9A Active CN104504303B (zh) 2014-09-29 2014-09-29 基于cpu+gpu异构***的序列比对方法

Country Status (1)

Country Link
CN (1) CN104504303B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897582B (zh) * 2017-01-25 2018-03-09 人和未来生物科技(长沙)有限公司 一种面向基因数据解读的异构平台
CN110427262B (zh) * 2019-09-26 2020-05-15 深圳华大基因科技服务有限公司 一种基因数据分析方法及异构调度平台
CN112229989A (zh) * 2020-10-19 2021-01-15 广州吉源生物科技有限公司 一种gpu技术的生物样本识别设备
CN112259168B (zh) * 2020-10-22 2023-03-28 深圳华大基因科技服务有限公司 基因测序数据处理方法和基因测序数据处理装置
CN114064551B (zh) * 2022-01-17 2022-05-17 广州嘉检医学检测有限公司 基于cpu+gpu异构的高并发序列比对计算加速方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663270A (zh) * 2012-03-08 2012-09-12 华中科技大学 基于gpu的序列比对算法的比对结果处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747413B2 (en) * 2010-07-20 2017-08-29 King Abdullah University Of Science And Technology Adaptive processing for sequence alignment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663270A (zh) * 2012-03-08 2012-09-12 华中科技大学 基于gpu的序列比对算法的比对结果处理方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A data parallel strategy for aligning multiple biological sequences on multi-core computers;Xiangyuan Zhu et al.;《Computers in Biology and Medicine》;20131231;第43卷;第350-361页 *
CUDA-MAFFT: Accelerating MAFFT on CUDA-Enabled Graphics Hardware;Xiangyuan Zhu et al.;《2013 IEEE International Conference on Bioinformatics and Biomedicine》;20131221;第486-489页 *
基于GPGPU的生物序列快速比对;马海晨 等;《计算机工程》;20120229;第38卷(第4期);第241-244页 *
基于得分矩阵的快速匹配算法;陈祖义 等;《2011 International Conference on Economic, Education and Management(ICEEM2011)》;20111231;第326-329页 *
生物序列分析算法的CPU+GPU异构并行优化关键技术研究;万文;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140515(第05期);论文第17-29、41-42页 *

Also Published As

Publication number Publication date
CN104504303A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN104504303B (zh) 基于cpu+gpu异构***的序列比对方法
Hong-Tao et al. K-means on commodity GPUs with CUDA
Blazewicz et al. Protein alignment algorithms with an efficient backtracking routine on multiple GPUs
US20150324441A1 (en) System and method for high performance k-means clustering on gpu with smart kernels
Ling et al. Design and implementation of a CUDA-compatible GPU-based core for gapped BLAST algorithm
Huynh et al. An efficient approach for mining sequential patterns using multiple threads on very large databases
Wang et al. Xsw: Accelerating biological database search on xeon phi
Feng et al. Accelerating long read alignment on three processors
Shi et al. Parallel mutual information estimation for inferring gene regulatory networks on GPUs
Venkatachalam et al. Faster algorithms for RNA-folding using the Four-Russians method
Li et al. Pairwise sequence alignment for very long sequences on GPUs
Munekawa et al. Design and implementation of the Smith-Waterman algorithm on the CUDA-compatible GPU
CN104239732A (zh) 一种运行于多核计算机平台的并行通用序列的比对方法
CN110795469B (zh) 基于Spark的高维序列数据相似性查询方法及***
US20230385258A1 (en) Dynamic random access memory-based content-addressable memory (dram-cam) architecture for exact pattern matching
Xu et al. SLPal: Accelerating long sequence alignment on many-core and multi-core architectures
Hartung et al. Optimizing similarity computations for ontology matching-experiences from gomma
US20230350677A1 (en) COMPUTING 2-BODY STATISTICS ON GRAPHICS PROCESSING UNITS (GPUs)
Malik et al. Task scheduling for GPU accelerated hybrid OLAP systems with multi-core support and text-to-integer translation
Khaled et al. Accelerating pairwise DNA Sequence Alignment using the CUDA compatible GPU
Kaur et al. Accelerating Smith-Waterman algorithm for faster sequence alignment using graphical processing unit
Feng et al. Accelerating Smith-Waterman alignment of species-based protein sequences on GPU
Kaldewey et al. Large-scale GPU search
Che et al. Accelerating all-edge common neighbor counting on three processors
Abu-Doleh et al. Extracting maximal exact matches on GPU

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant