CN111443947B - 基于众核平台上面向二代测序数据的序列比对方法及*** - Google Patents

基于众核平台上面向二代测序数据的序列比对方法及*** Download PDF

Info

Publication number
CN111443947B
CN111443947B CN202010213357.3A CN202010213357A CN111443947B CN 111443947 B CN111443947 B CN 111443947B CN 202010213357 A CN202010213357 A CN 202010213357A CN 111443947 B CN111443947 B CN 111443947B
Authority
CN
China
Prior art keywords
data
memory
calculation
read
processor
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
CN202010213357.3A
Other languages
English (en)
Other versions
CN111443947A (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.)
Shandong University
Original Assignee
Shandong 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 Shandong University filed Critical Shandong University
Priority to CN202010213357.3A priority Critical patent/CN111443947B/zh
Publication of CN111443947A publication Critical patent/CN111443947A/zh
Application granted granted Critical
Publication of CN111443947B publication Critical patent/CN111443947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Analytical Chemistry (AREA)
  • Mathematical Physics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Chemical & Material Sciences (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了基于众核平台上面向二代测序数据的序列比对方法及***,包括:根据平台计算能力,自适应的调整读入的数据块大小,实现计算与I/O的相互掩盖;基于内存池策略利用预分配策略和轻量级的内存分配策略,减小内存开销;充分利用处理器的向量处理单元,采用指令集对计算过程进行向量化并行。对于BWA‑MEM算法,其整体性能有了显著提升,程序整体性能取得了3.62倍的加速比;算法线程拓展性有了显著改善;核心计算部分相比与原算法,在不同大小的数据集下取得的加速比情况为8.4~12.6。

Description

基于众核平台上面向二代测序数据的序列比对方法及***
技术领域
本发明属于数据处理技术领域,尤其涉及基于众核平台上面向二代测序数据的序列比对方法及***。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
基因测序技术是基因组学中一个高速发展变化的领域。在目前的测序技术仍然在不断改进、进一步提高性能的同时,新的测序技术的出现也层出不穷。由于下一代基因测序(Next Generation Sequencing,简称NGS)技术进步和测序成本下降的速度比计算机硬件行业的发展及相应计算能力增加的速度更快(NGS进步速度高于摩尔定律),NGS数据产生的速度与其计算分析能力之间的差距只会越来越大。缩小这个差距,加快NGS数据分析的处理过程,人们对于成本更低、速度更快、对***和缺失等错误灵敏度和准确度更高、同时可以支持更长序列计算算法的需求也越来越强烈。
发明人在研究中发现,现有的面向二代测序数据的序列比对算法虽然在速度和精度上保持了良好的平衡,但经过分析仍然发现其存在计算与I/O相互掩盖不足的流水线设计问题、内存分批开销过大问题、以及未向量化等问题。这使得算法无法充分发挥其性能。
面向二代数据的序列:为新一代测序(NGS,Next Generation Sequencing)序列,区别于第一代测序技术测得的序列,数据量大,每条序列的长度在几十到几百。
当前针对面向二代数据的序列比对算法优化有如下几个问题:
1.计算与I/O相互掩盖不足的流水线设计问题;
2.程序中大量、频繁的内存操作带来的额外开销过大;
3.核心计算部分未进行向量化。
发明内容
为克服上述现有技术的不足,本发明提供了基于众核平台上面向二代测序数据的序列比对方法,修改数据划分方式,自适应的调整读入的数据块大小,从而更好的实现计算与I/O的相互掩盖。
为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
基于众核平台上面向二代测序数据的序列比对方法,包括:
读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理;
其中,序列比对计算处理步骤为:根据处理器计算性能,自适应的调整读入的数据块大小,利用处理器的向量处理单元,采用指令集对计算过程进行向量化并行;
基于内存池策略利用预分配策略和轻量级的内存分配策略对读入的数据块进行存储。
进一步的技术方案,根据处理器计算性能,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
进一步的技术方案,在真正使用内存之前,先申请分配一定数量的内存块备用,通过指针操作,模拟分配内存的过程,当程序有新的内存使用需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存,对于每个线程,初始化一个内存池,线程内频繁调用的计算部分,使用内存池分配内存,提高内存分配效率。
进一步的技术方案,进行传参时,将本批次实际进行计算的target个数传入计算方法,并据此设置掩码,初始化向量后,最后将结果返回时,按照掩码来存储信息,返回实际应该进行了计算的得分值。
基于众核平台上面向二代测序数据的序列比对***,包括处理器,所述处理器被配置为:
根据平台计算能力,自适应的调整读入的数据块大小,实现计算与I/O的相互掩盖;
基于内存池策略利用预分配策略和轻量级的内存分配策略,减小内存开销;
充分利用向量处理单元,采用指令集对计算过程进行向量化并行。
进一步的技术方案,首先根据平台计算能力,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
进一步的技术方案,在真正使用内存之前,先申请分配一定数量的内存块备用,通过指针操作,模拟分配内存的过程,当程序有新的内存使用需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存,对于每个线程,初始化一个内存池,线程内频繁调用的计算部分,使用内存池分配内存,提高内存分配效率。
进一步的技术方案,进行传参时,将本批次实际进行计算的target个数传入计算方法,并据此设置掩码,初始化向量后,最后将结果返回时,按照掩码来存储信息,返回实际应该进行了计算的得分值。
以上一个或多个技术方案存在以下有益效果:
本申请处理的是基因测序仪测得的基因测序数据。根据基因测序的数据格式,对其中的碱基数据进行处理。
针对BWA-MEM算法实现过程存在的流水线设计缺陷,修改数据划分方式,自适应的调整读入的数据块大小,从而更好的实现计算与I/O的相互掩盖。
针对BWA-MEM算法实现过程存在的频繁内存操作带来开销过大问题,基于内存池策略提出了预分配策略和一种轻量级的内存分配策略,减小内存开销。
针对BWA-MEM算法实现过程存在的核心计算部分未向量化问题,采用AVX-512指令集对计算过程进行向量化并行,充分利用处理器的向量处理单元。
对于BWA-MEM算法,其整体性能有了显著提升,程序整体性能取得了3.62倍的加速比;算法线程拓展性有了显著改善;核心计算部分相比与原算法,在不同大小的数据集下取得的加速比情况为8.4~12.6。其中,对于核心Smith-Waterman算法计算的优化具有普适性,可以作为一种通用的计算核心,应用于其他应用。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例流水线优化策略示意图;
图2为本发明实施例轻量级内存操作策略示意图;
图3为原始算法计算示意图(每次计算一个得分矩阵);
图4为向量化示意图(每次计算batch size个得分矩阵)。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
BWA-MEM,Burrows-Wheeler Alignment-mem,一种基于BWT索引的基因数据比对算法,它在速度和精度上达到了很好的平衡。SW算法,Smith-Waterman算法,一种基于动态规划的序列比对算法,是BWA-MEM的核心计算部分。
本发明提出的总体思路:
整体步骤为:读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理,进行序列比对计算,结果写回。
序列比对的计算又可以分为:1.选种和重新选种,第一次选出的种如果太长,就按照另一种策略再次对该种子所在的部分进行再次选种,2.链化与过滤,3.种子拓展。
针对BWA-MEM算法实现过程存在的流水线设计缺陷,修改数据划分方式,自适应的调整读入的数据块大小,从而更好的实现计算与I/O的相互掩盖
针对BWA-MEM算法实现过程存在的频繁内存操作带来开销过大问题,基于内存池策略提出了预分配策略和一种轻量级的内存分配策略,减小内存开销;
针对BWA-MEM算法实现过程存在的核心计算部分未向量化问题,采用AVX-512指令集对计算过程进行向量化并行,充分利用处理器的向量处理单元。
本申请所基于的平台是Intel Knight Landing,简称KNL,该平台引入Intel 512位高级矢量扩展指令集AVX-512指令集,集成了众多CPU核心,采用了高性能内存设备(HBM2.0,High Bandwidth Memory),能够支持众多多线程和数据的同步,具有很高的内存带宽。
实施例一
本实施例公开了基于众核平台上面向二代测序数据的序列比对方法,针对BWA-MEM算法实现过程存在的流水线设计缺陷进行优化的具体步骤包括:
利用流水线进行优化的本质是利用大任务可以分解为多个子任务,子任务之间可以互不影响地,分为多个阶段地同时执行,子任务间执行时间相互掩盖。根据这种情况,对BWA-MEM的流水线设计进行分析。任务被分解为3部分:单线程读取数据、多线程序列匹配、单线程输出结果。然而,BWA-MEM在将数据划分成多个数据块,分别对每个数据块进行以上三步处理,以流水线进行相互掩盖时,数据划分存在不合理:第一个数据块过大,导致全局的第一个子任务执行时间过长,而第一个子任务是无法进行掩盖的,所以,本文要解决多线程小数据集下,数据划分不均匀,流水线掩盖效果不好的情况。
针对这些问题,要改善数据划分方式,合理划分数据块大小,优化子任务间相互掩盖的效果,优化流水线设计。因此,提出了一种自适应的数据划分方案,动态调整数据块的大小。首先根据平台计算能力,将第一次读取的数据取一个较小的基因测序数据数据块,通过信号量标记读取的数据是否完成计算,之前读入的数据正在进行序列比对计算,如果没有计算完那么另一个线程就持续性读取新数据,当完成了计算,那么当前线程就停止读入新数据把已经读到的数据进行序列比对计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行序列比对的计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
具体的,优化策略示意图如下图1所示,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖:
前提是计算与输入输出是可以并行执行的,通过一个信号量进行标记是否完成计算,首先根据读入一小块数据,开始进行计算,此时信号量标记的含义是正在进行计算,在这块数据开始计算的同时,另一个线程去读取下一次要计算的新数据,根据数据计算时间确定读取的新数据块大小,当该块数据算完的时候修改一下信号量,表明另一个线程计算完成,则另一个线程就会停止读取新数据,把当前线程进行计算期间读取的新数据进行计算,进行计算的同时再把信号量改成正在读取,这时候就又会有另外一个线程去读新数据,与此同时之前读入的数据进行序列比对计算。原来的时候是读取,读完进行计算,算完写回,然后再读取。本申请是把数据的输入输出和计算同时进行。
如下图2所示:基于内存池策略针对BWA-MEM算法实现过程存在的频繁内存操作带来开销过大问题优化的具体步骤包括:
内存的分配策略是存在于整个程序的执行过程中,尤其是序列比对计算过程中,在序列比对的计算过程中存在着频繁的内存申请与销毁的操作。这些操作非常耗费时间。因此提出了内存分配的策略。就是下这是下面所说的内存池概念。
引入内存池的概念,在真正使用内存之前,先申请分配一定数量的内存块备用,通过指针操作,模拟分配内存的过程,当程序有新的内存使用需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。对于每个线程,初始化一个内存池,线程内频繁调用的计算部分,使用内存池分配内存,依此提高内存分配效率。
此外,对于BWA-MEM算法实现过程中存在对于索引数据的压缩,将压缩后的数据存储在内存中,在实际计算中,通过计算得到原始的数据值。存在一种优化策略是取消压缩过程,将索引数据全部存储在内存中以减少计算量,但这种策略会带来很大的内存占用,使得BWA-MEM算法的应用局限于内存很大的大型机器或集群上。在实现过程中,一方面通过压缩减少对内存的使用,另一方面通过上述内存池策略减少频繁内存操作带来的额外开销,使BWA-MEM算法对于设备内存的要求保持在相对较低的水平,利于PC及小型服务器使用该算法进行计算。
针对BWA-MEM算法实现过程存在的核心计算部分未向量化问题进行向量化的具体步骤,包括:
进行向量化,并行计算得分:进行向量化并行的前提是数据间互不依赖,在原算法条带化的Smith-Waterman算法中,动态规划过程计算每一个位置(i,j)处的得分都依赖于(i-1,j),(i,j-1),(i-1,j-1)处得分。因此在某条待匹配序列与目标序列计算联配得分过程内部无法进行向量化并行,计算过程如下图3所示。但对于不同的read,其计算之间显然不存在依赖关系,即并行计算n个得分矩阵,每次最多可以同时计算的矩阵个数n称为batchsize。示意图4如下:算法实现过程中,由于启发式方法的存在,banded-SW实际进行计算的宽度w,是动态变化的,也就是说计算target和query的得分矩阵时,对于target的某个碱基对应的一行得分不需要全部计算,计算的终止位置是由本轮的宽度w和启发式条件共同决定的。其中每一轮的宽度是在w的基础上按照一定条件进行缩小,这就导致了target不同位置处的碱基对应计算的得分数量不同,实际计算的宽度w是不同的,这种策略在串行计算时可以减少计算量,但在进行向量化并行计算时就会存在一定的问题。为了减小计算开销,进行向量化,使用固定宽度w的方法,可以分析得到使用固定w的方法,虽然牺牲了在串行计算时可以省略的计算,但可以分析得到,向量化后的计算开销与多轮中计算量最大的一轮相同,而向量化后的计算利用这一轮的计算开销可以完成n条的计算。整体计算开销仍然是大幅减小的。
算法使用AVX-512指令集进行优化,一次性计算的所有数据迭代次数统一,迭代次数取决于序列长度,事实情况下,序列长度是各不相同的,因此在计算过程中,要使用向量化手段进行并行加速,就必须解决数据迭代轮数不统一这一问题。方法进行传参时,将目标序列的长度按照对应的目标序列传入一个序列长度数组,根据数组中的值设置掩码,在迭代轮数超过目标序列长度时,向量中该元素及其对应的各项值设置掩码,不进行运算与迭代,这样,就可以保证数据经过了正常正确的运算。
算法使用AVX-512指令集进行优化时,一次性计算batch size个数据,然而实际上同一个query需要与其进行计算的target的个数不一定恰好填满整个向量,这就会使向量运算出现错误。方法进行传参时,将本批次实际进行计算的target个数传入计算方法,并据此设置掩码,初始化向量后,最后将结果返回时,按照掩码来存储信息,返回实际应该进行了计算的得分值。
具体的,在调用实际的序列比对算法的时候传参,组织好需要进行比对的序列之后,实际对序列进行比对时调用种子-拓展方法,调用这个方法的时候需要给这个方法提供一些参数,因为同一个query需要与其进行计算的target的个数不一定恰好填满整个向量,所以要再添加一个target序列个数的参数方便后续补齐。
另外需要说明的是,前面涉及的数据块的是原始的读入的数据划分成的数据块,此处的target、query等均是将原始数据块中的数据进行过seeding chaining等处理过后得到的要进行比对的序列对象。因为原始的数据需要选择出实际要进行比对的query和target部分,然后再进行比对。
实施例二
本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤,包括:
根据平台计算能力,自适应的调整读入的数据块大小,实现计算与I/O的相互掩盖;
基于内存池策略利用预分配策略和轻量级的内存分配策略,减小内存开销;
充分利用处理器的向量处理单元,采用指令集对计算过程进行向量化并行。
实施例三
本实施例的目的是提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行以下步骤:
根据平台计算能力,自适应的调整读入的数据块大小,实现计算与I/O的相互掩盖;
基于内存池策略利用预分配策略和轻量级的内存分配策略,减小内存开销;
充分利用处理器的向量处理单元,采用指令集对计算过程进行向量化并行。
实施例四
基于众核平台上面向二代测序数据的序列比对***,包括处理器,所述处理器被配置为:
根据平台计算能力,自适应的调整读入的数据块大小,实现计算与I/O的相互掩盖;
基于内存池策略利用预分配策略和轻量级的内存分配策略,减小内存开销;
充分利用向量处理单元,采用指令集对计算过程进行向量化并行。
以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (9)

1.基于众核平台上面向二代测序数据的序列比对方法,其特征是,包括:
读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理;
其中,序列比对计算处理步骤为:根据处理器计算性能,自适应的调整读入的数据块大小,利用处理器的向量处理单元,采用指令集对计算过程进行固定宽度的向量化并行;
基于内存池策略利用预分配策略和轻量级的内存分配策略对读入的数据块进行存储,通过指针操作,模拟分配内存的过程,并通过对索引数据的压缩,将压缩后的数据存储在内存中,通过压缩减少对内存的使用;
根据处理器计算性能,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
2.如权利要求1所述的基于众核平台上面向二代测序数据的序列比对方法,其特征是,在使用内存之前,先申请分配一定数量的内存块备用,通过指针操作,模拟分配内存的过程,当程序有新的内存使用需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存,对于每个线程,初始化一个内存池,线程内频繁调用的计算部分,使用内存池分配内存,提高内存分配效率。
3.如权利要求1所述的基于众核平台上面向二代测序数据的序列比对方法,其特征是,进行传参时,将本批次实际进行计算的target个数传入计算方法,并据此设置掩码,初始化向量后,最后将结果返回时,按照掩码来存储信息,返回实际应该进行了计算的得分值。
4.基于众核平台上面向二代测序数据的序列比对***,其特征是,包括处理器,所述处理器被配置为:
读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理;
其中,序列比对计算处理步骤为:根据处理器计算性能,自适应的调整读入的数据块大小,利用处理器的向量处理单元,采用指令集对计算过程进行固定宽度的向量化并行;
基于内存池策略利用预分配策略和轻量级的内存分配策略对读入的数据块进行存储,通过指针操作,模拟分配内存的过程,并通过对索引数据的压缩,将压缩后的数据存储在内存中,通过压缩减少对内存的使用;
根据处理器计算性能,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
5.如权利要求4所述的基于众核平台上面向二代测序数据的序列比对***,其特征是,首先根据平台计算能力,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
6.如权利要求4所述的基于众核平台上面向二代测序数据的序列比对***,其特征是,在真正使用内存之前,先申请分配一定数量的内存块备用,通过指针操作,模拟分配内存的过程,当程序有新的内存使用需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存,对于每个线程,初始化一个内存池,线程内频繁调用的计算部分,使用内存池分配内存,提高内存分配效率。
7.如权利要求4所述的基于众核平台上面向二代测序数据的序列比对***,其特征是,进行传参时,将本批次实际进行计算的target个数传入计算方法,并据此设置掩码,初始化向量后,最后将结果返回时,按照掩码来存储信息,返回实际应该进行计算的得分值。
8.一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤,其特征是,包括:
读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理;
其中,序列比对计算处理步骤为:根据处理器计算性能,自适应的调整读入的数据块大小,利用处理器的向量处理单元,采用指令集对计算过程进行固定宽度的向量化并行;
基于内存池策略利用预分配策略和轻量级的内存分配策略对读入的数据块进行存储,通过指针操作,模拟分配内存的过程,并通过对索引数据的压缩,将压缩后的数据存储在内存中,通过压缩减少对内存的使用;
根据处理器计算性能,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征是,该程序被处理器执行时执行以下步骤:
读入数据:读入基因测序仪测得的基因测序数据,根据基因测序的数据格式,对其中的碱基数据进行序列比对计算处理;
其中,序列比对计算处理步骤为:根据处理器计算性能,自适应的调整读入的数据块大小,利用处理器的向量处理单元,采用指令集对计算过程进行固定宽度的向量化并行;
基于内存池策略利用预分配策略和轻量级的内存分配策略对读入的数据块进行存储,通过指针操作,模拟分配内存的过程,并通过对索引数据的压缩,将压缩后的数据存储在内存中,通过压缩减少对内存的使用;
根据处理器计算性能,将第一次读取的数据取一个较小的数据块,通过信号量标记读取的数据是否完成计算,在数据进行计算时读取下一块数据,计算完毕修改信号量结束当前读取,进行计算,使用动态方法确定可变块数据大小完成数据读取与计算的掩盖。
CN202010213357.3A 2020-03-24 2020-03-24 基于众核平台上面向二代测序数据的序列比对方法及*** Active CN111443947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010213357.3A CN111443947B (zh) 2020-03-24 2020-03-24 基于众核平台上面向二代测序数据的序列比对方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010213357.3A CN111443947B (zh) 2020-03-24 2020-03-24 基于众核平台上面向二代测序数据的序列比对方法及***

Publications (2)

Publication Number Publication Date
CN111443947A CN111443947A (zh) 2020-07-24
CN111443947B true CN111443947B (zh) 2022-09-27

Family

ID=71650768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010213357.3A Active CN111443947B (zh) 2020-03-24 2020-03-24 基于众核平台上面向二代测序数据的序列比对方法及***

Country Status (1)

Country Link
CN (1) CN111443947B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838552A (zh) * 2014-03-18 2014-06-04 北京邮电大学 4g宽带通信***多核并行流水线信号的处理***和方法
CN104375899A (zh) * 2014-11-21 2015-02-25 北京应用物理与计算数学研究所 高性能计算机numa感知的线程和内存资源优化方法与***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489199B2 (en) * 2012-12-28 2016-11-08 Intel Corporation Vector compare instructions for sliding window encoding
CN104375807B (zh) * 2014-12-09 2017-05-17 中国人民解放军国防科学技术大学 基于众核协处理器的三级流水序列比对方法
CN104572106A (zh) * 2015-01-12 2015-04-29 浪潮电子信息产业股份有限公司 一种基于小内存处理大规模数据的并行程序开发方法
CN106991011B (zh) * 2017-03-30 2020-07-24 武汉大学 基于cpu多线程与gpu多粒度并行及协同优化的方法
CN107729118A (zh) * 2017-09-25 2018-02-23 复旦大学 面向众核处理器的修改Java虚拟机的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838552A (zh) * 2014-03-18 2014-06-04 北京邮电大学 4g宽带通信***多核并行流水线信号的处理***和方法
CN104375899A (zh) * 2014-11-21 2015-02-25 北京应用物理与计算数学研究所 高性能计算机numa感知的线程和内存资源优化方法与***

Also Published As

Publication number Publication date
CN111443947A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
US10915816B2 (en) System and method of executing neural networks
CN110378468B (zh) 一种基于结构化剪枝和低比特量化的神经网络加速器
US10963787B2 (en) Systems and methods for generation of sparse code for convolutional neural networks
CN109993299B (zh) 数据训练方法及装置、存储介质、电子装置
Liu et al. Streaming algorithms for biological sequence alignment on GPUs
US11216732B2 (en) Systems and methods for generation of sparse code for convolutional neural networks
US8463820B2 (en) System and method for memory bandwidth friendly sorting on multi-core architectures
CN112200300B (zh) 卷积神经网络运算方法及装置
US8762655B2 (en) Optimizing output vector data generation using a formatted matrix data structure
CN110516316B (zh) 一种间断伽辽金法求解欧拉方程的gpu加速方法
Martín et al. Algorithmic strategies for optimizing the parallel reduction primitive in CUDA
Lai et al. Accelerating Strassen-Winograd's matrix multiplication algorithm on GPUs
Neelima et al. Predicting an optimal sparse matrix format for SpMV computation on GPU
US20140196043A1 (en) System and method for re-factorizing a square matrix into lower and upper triangular matrices on a parallel processor
CN115860066A (zh) 一种基于批处理的神经网络推理流水线复用的方法
Zhu et al. Taming unstructured sparsity on GPUs via latency-aware optimization
CN111443947B (zh) 基于众核平台上面向二代测序数据的序列比对方法及***
CN112947932A (zh) 对编译过程中的向量化进行优化的方法、装置及电子设备
CN110414672B (zh) 卷积运算方法、装置及***
WO2021054990A1 (en) Systems and methods for generation of sparse code for convolutional neural networks
CN113392957B (zh) 卷积运算的处理方法、电子设备、移动终端及存储介质
Tukanov et al. Modeling matrix engines for portability and performance
CN112100446B (zh) 搜索方法、可读存储介质和电子设备
CN114692079A (zh) 一种gpu批量矩阵乘法加速器及其处理方法
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法

Legal Events

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