一种基于CPU+MIC异构平台的SIFT并行算法的制作方法

文档序号:11156063阅读:521来源:国知局
本发明异构平台的SIFT并行算法的实现技术,尤其涉及一种基于CPU+MIC平台异构计算的并行加速的处理方法。
背景技术
::SIFT算法是用来预测当氨基酸变化是否会影响蛋白质的功能的工具,应用于在自然界中突变或者是在实验室的人工诱导变异。SIFT首先通过blast来查找同源序列,然后使用PSI_BLAST选择相近的相关序列,最后计算氨基酸的转换是否影响蛋白质的功能,具体流程,如图1所示。可以看出SIFT算法是由PSIBLAST算法以及其他后续处理算法组成。PSIBLAST是SIFT算法的核心算法,是基于局部序列比对的数据库相似性搜索工具,一种启发式搜索算法,其核心在于:seeding和extending。流程如下所示:1.建立查询字串的列表(makelookuptable)a)按照字长为W(蛋白一般为3)划分查询序列,构建W字长的字串列表,b)寻找所有与字串匹配比对分值大于阈值T的邻居字串(根据打分矩阵),将它们也加入查询字串列表中去2.在数据库中搜索增强点(Seeding阶段):在数据库中搜索,与查询字串列表中的字串精确匹配的形成一个hit增强点,作为下一步的种子;3.扩展种子(Extending阶段):对于种子,根据打分矩阵沿左右两个方向延伸直到分值低于一个阈值S,得到的结果称为HSP;4.根据得分矩阵的进行回溯,得出比对结果序列。基本blast算法是不考虑空位插入的,但在生物进化过程中碱基的插入或缺失突变是普遍存在的,因此比对结果中常会出现一些无空位但不连续的区域,若将这些高分分值片段对通过一些相似性较低且有空位的片段连接起来,就能形成一些更长或更有实际意义的比对,因此改进的BLAST算法允许空位的出现,在多个HSP中,找一个最好的得分最高的片段对(MSP),以此基础运行动态规划将一片段向序列的两段延伸,最终产生一个积分较高的最佳比对结果,且有可能空位产生。改进算法(含空位)流程:(1)采取two-hits阶段,即距离小于A而得分大于T的两个相邻hits串联起来形成种子进入下一步;(2)两步扩展:首先对种子进行不含空位扩展,形成HSP(最初版本的BLAST),之后进行含空位的扩展。PSI-BLAST(PositionSpecificIterativeBLAST),位点特异的迭代blast搜索,主要针对蛋白序列,主要搜索与感兴趣蛋白远源相关的蛋白。第一次blast搜索后,结果中最相似的序列重新构建PSSM(位点特异打分矩阵),然后根据此矩阵进行第二次blast搜素,再调整矩阵,搜索,调整矩阵,如此迭代。与blastp程序相比,提高了搜索的灵敏度。(传统的BLAST对打分矩阵依赖大,HSP的计分值都依赖固定的计分矩阵,建立的PSSM使不能被搜索到的远缘蛋白被比对上),PSIBLAST流程图如图2所示。计算速度对于高性能计算尤为重要,高性能计算将朝多核、众核发展,采用异构并行提升应用计算速度,目前CPU+MIC是非常成熟的异构协同计算模式,适合高度并行计算的应用或算法,如生物信息学、计算流体力学应用、FFT计算等,但由于MIC协处理器在编程效率、细粒度并行算法设计、大规模并行性能上都存在巨大挑战。随着IntelKNL(KnightLightsLanding)的正式发布,CPU+MIC将是高性能计算一个不错的选择,利用KNL的众核、兼容传统CPU平台二进制程序的等其他技术特点,特别适合并行度高的算法,采用此架构能在提升应用性能的同时大大提高编程效率,MIC能与CPU完美结合解决更多的应用性能瓶颈,但对于某些向量化程度不高、内存密集型应用其性能也面临着挑战,将极大满足不同应用的计算性能需求。技术实现要素:本发明要解决的技术问题是针对SIFT算法的特性及并行处理的思想,利用CPU+MIC异构平台的优点,尤其是Intel新一代KNL协处理器的特性,以实现整个算法效率大幅提升,并解决传统CPU计算方法以及系统应用的性能低下、生产效率低等问题。为解决上述技术问题,为此,本发明针对CPU+MIC异构平台提供一种基于CPU+MIC异构平台的SIFT并行算法,它具有算法效率大幅提升,并解决传统CPU计算方法以及系统应用的性能低下、生产效率低等问题的优点。本发明提供了一种实现针对CPU+MIC异构平台、及SIFT算法的并行处理思想;并联合MPI进行并行计算进行蛋白质序列比对并行处理的集群系统,该系统分为硬件系统和PSIBLAST算法软件系统,其中硬件系统包括:一个主处理器平台的系统和多个协处理器平台加速平台,其中主处理器采用纯CPU芯片计算,协作加速平台才用基于Intel的MIC技术的KNL平台加速处理;专用OPA高速网络,用于连接MIC集群中每个节点,每个节点可以互相实现高速通信,硬件体系结构图如图3所示。为了实现上述目的,本发明采用如下技术方案。一种基于CPU+MIC异构平台的SIFT并行算法,对SIFT算法中核心模块进行MIC上的加速,利用消息传递机制系统,对当前多序列进行分割,形成多条单蛋白质序列,对每条蛋白质序列进行并行加速处理、在数据库中进行序列比对,挖掘其并行度。基于CPU+MIC异构平台的SIFT并行算法,具体包括:第一步,初始化各参数,包括查询长度、打分矩阵、阈值T、比对序列数据库、迭代次数、显著性分析的期望值、比对长度等,对序列比对模块PSIBLAST并行计算,第二步,对蛋白质多序列数据按照生物信息学的标准进行分割处理。第三步,利用MPI消息传递机制进行多条蛋白质数据序列的分发,分发至MIC集群进行加速运算。第四步,比对结果输出对齐统计、根据种子中位选择蛋白质序列、序列排序、生成预测信息、数据合并处理。PSIBLAST并行算法首先将整个序列群体分解成若干个子群,然后针对各个子群,同时并行进行子群内部的序列比对算法的运算,由于各个子群中蛋白质序列数据是相互独立而不相关的,所以能够很好地进行并行计算。另外,各个子群中序列的数据不相关,进行序列比对时,非常合适并行计算。由此可见,可以将各个子群分配利用多处理器节点或者多线程的方式进行遗传算子并行操作,提高整个PSIBLAST算法的运行效率,实现计算规模的扩展,满足高性能应用的要求。本发明使用在蛋白质序列数据库分割并行算法的模型基础上,提出了基于查询序列分割算法,查找序列分割算法采用生物信息蛋白质分割技术,对蛋白质多查询序列数据进行有效合理分割。查询序列分割算法的输入是单文本中多条待进行序列比对的蛋白质查询序列,输出结果是序列比对的数据集,基于MPI的PSIBLAST算法流程。为了更好地加速SIFT算法,本发明算法分为三部分结构:(1)对SIFT算法中核心的序列比对算法模块PSIBLAST进行MIC平台的加速,并利用向量化、多线程的方式达到一个理想的加速效果;(2)SIFT算法中的其他流程利用CPU平台的高频率特点进行CPU的计算,并很好地与PSIBLAST算法进行异构协同加速。(3)对多蛋白质序列数据进行有效分割,并行处理计算运行SIFT算法,进一步挖掘SIFT算法的并行度,为了提高并行挖掘的效率,根据数据流的特点,基于MPI的并行计算模式,提高算法效率。本发明的有益效果:本发明实现整个算法效率大幅提升,并解决传统CPU计算方法以及系统应用的性能低下、生产效率低等问题。附图说明图1.SIFT算法流程示意图。图2.PSIBLAST算法流程示意图。图3.CPU+MIC异构平台系统。图4.CPU+MIC异构平台SIFT并行算法示意图。具体实施方式下面结合附图与实施例对本发明作进一步说明。如图3、图4所示,一种基于CPU+MIC异构平台的SIFT并行算法,为进行异构加速计算,将p53数据发送至MIC平台加速运行,为进行多蛋白质序列数据序列比并行比对,对蛋白质序列数据文本进行分割,并利用消息传递机制负载均衡地发送至MIC集群进行算法加速,并将加速运行完后的结果进行分析综合,以下是实施的具体步骤。第一步:初始化各参数,包括查询长度、打分矩阵、阈值T、比对序列数据库、迭代次数、显著性分析的期望值、比对长度等,由于对其中的序列比对模块PSIBLAST采用并行算法,因此还需要设置线程数。第二步:由于需要对多序列蛋白质数据进行SIFT算法的流程,因此首先要对蛋白质多序列数据按照生物信息学的标准进行分割处理。第三步:利用MPI消息传递机制进行多条蛋白质数据序列的分发,分发至MIC集群进行加速运算。MPI伪码如下:MPI_init(){MPI_COMM_SIZE(n);MPI_COMM_RANK(CurRank);if(CurRank=0)//主节点,初始化查询序列和分发计算任务{MPI_Scatterv(sequence[]);……MPI_Gatherv(result[]);}else//CurRank不是0,是从节点,接收主节点任务,进行序列数据比对{PSIBLAST()……}MPl_finalize();}第四步:比对结果输出对齐统计、根据种子中位选择蛋白质序列、序列排序、生成预测信息、数据合并处理。由于SIFT算法其他步骤如耗时较短,流程简单,在CPU段利用CPU的高频率即可快速运行处理。上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1