首页 > 专利 > 南京师范大学 > 一种面向数据并行计算容错的快速并行复算方法专利详情

一种面向数据并行计算容错的快速并行复算方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2015-07-15
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2015-12-02
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2018-07-20
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2035-07-15
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201510415605.1 申请日 2015-07-15
公开/公告号 CN105022673B 公开/公告日 2018-07-20
授权日 2018-07-20 预估到期日 2035-07-15
申请年 2015年 公开/公告年 2018年
缴费截止日
分类号 G06F11/07 主分类号 G06F11/07
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 1
权利要求数量 2 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、Shoushuai Miao et..Research on thefast parallel recomputing for paralleldigital terrain analysis《.GRMSE 2014,CCIS482,Springer-Verlag Berlin Heidelberg》.2014,244-251. Shoushuai Miao et..Study on error-detecting approach for fault tolerancerecomputing oriented parallel digitalterrain analysis《.2014 13th InternationalSymposium on Distributed Computing andApplications to Business,Engineering andScience》.2014,148-151.;
引用专利 CN104714758A 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 南京师范大学 当前专利权人 常州市绘了么教育信息咨询服务有限公司
发明人 窦万峰、苗守帅 第一发明人 窦万峰
地址 江苏省南京市亚东新城区文苑路1号 邮编 210046
申请人数量 1 发明人数量 2
申请人所在省 江苏省 申请人所在市 江苏省南京市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
南京知识律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
李媛媛
摘要
本发明属于并行系统容错的技术领域,涉及利用冗余计算对计算任务进行检错和纠错进行的并行复算方法,特别提出基于出错任务对应的数据块进行逻辑划分及二次调度的快速并行复算方法。包括:对数据块的计算结果进行基于冗余计算策略的错误检测;基于多线程的线程检错和进程复算纠错进行的复算方法。本发明的方法完全可应用于大规模海量数据的并行数字地形分析的高性能计算的容错处理场合,例如,规则格网并行插值、坡度坡向并行计算、洼地填平并行计算等地形因子提取;可以应用于地理信息处理的高性能计算;也可以应用于基于地理信息的空间决策分析和数据挖掘等应用场合,提高处理效率。
  • 摘要附图
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图1
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图2
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图3
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图4
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图5
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图6
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图7
    一种面向数据并行计算容错的快速并行复算方法
  • 说明书附图:图8
    一种面向数据并行计算容错的快速并行复算方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-01-01 专利权人的姓名或者名称、地址的变更 专利权人由常州市绘了么教育信息咨询服务有限公司变更为常州绘了么信息科技有限公司 地址由213022 江苏省常州市新北区太湖西路7号变更为213002 江苏省常州市新北区通江南路299号教育产业园2号楼3层
2 2020-01-14 专利权的转移 登记生效日: 2019.12.26 专利权人由常州绘分享信息科技有限公司变更为常州市绘了么教育信息咨询服务有限公司 地址由213022 江苏省常州市新北区太湖西路7号变更为213022 江苏省常州市新北区太湖西路7号
3 2018-07-20 授权
4 2015-12-02 实质审查的生效 IPC(主分类): G06F 11/07 专利申请号: 201510415605.1 申请日: 2015.07.15
5 2015-11-04 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种面向数据并行计算容错的快速并行复算方法,其特征在于,所述方法包括:
步骤1,读入数据与数据分发:首先主节点的进程读入数据,按照数据划分策略,启动相应的线程;然后,每个线程依据二次冗余计算策略,将每个数据块分发给两个从节点进程;
步骤2,冗余计算:从节点的每个进程计算某个数据块的逻辑子块,完成一个逻辑子块后,发送结果给主节点的线程,若是最后一个逻辑子块,则线程结束该数据块的计算,否则,继续执行下一个逻辑子块;
步骤3,错误检测:主节点上的线程接收到两个从节点的计算进程的逻辑子块的计算结果后,立即进行该子块的结果一致性检查;若两个子块的计算结果一致,则执行步骤6融合子块结果,否则计算结果有错,则进入步骤4启动复算过程;若该子块是该数据块的最后一个子块,则进入步骤7进行结果保存,否则线程等待接收下一个子块的计算结果;
步骤4,重分发子块:线程检测到某个数据块的逻辑子块的结果有错,则立即分发出错的逻辑子块给一个从节点的计算进程,然后等待结果;
步骤5,子块复算:从节点的进程接收到逻辑子块后,发起子块的计算过程;计算完成后,进程将子块的结果发给线程;
步骤6,数据融合:线程收到逻辑子块的计算结果后,将结果融合到该数据块的结果中;
步骤7,结果保存:将该数据块的结果保存。

2.根据权利要求1所述的一种面向数据并行计算容错的快速并行复算方法,其特征在于,所述步骤3的具体步骤如下:
步骤31,线程分别接收到来自计算进程和其副本进程的结果;
步骤32,计算不一致累计数:接收结果完毕后,线程开始比较两个结果有无错误;若两个结果对应的每个单元的值的差为σ,如果σ<ξ,则差值在容许的范围内,否则认为误差大于许可值,累积误差累计数k加1,即k=k+1,其中k初始为0,ξ为容许的最大误差;
步骤33,计算误差率:计算方法如下:
其中,m和n分别为结果所对应的矩阵的行和列大小;
步骤34,当误差率r达到阈值ε时,即r>ε,则说明出现计算错误。
说明书

技术领域

[0001] 本发明属于并行计算系统容错的技术领域,涉及利用冗余策略对出错的计算任务进行快速纠错,特别提出一种面向数据并行计算容错的快速并行复算方法。

背景技术

[0002] 并行计算机系统的容错处理是一个不容忽视的问题。一个并行系统是容错的,指的是它的程序在出现逻辑故障的情况下仍然能够正确的运行和保证得到正确的结果。
[0003] 近年来,随着计算机系统结构的复杂性增加,半导体制造工艺的发展,线宽的降低以及集成度的提高,从用户桌面系统到分布式计算环境,乃至大规模并行计算机系统,功耗和可靠性问题都日渐突出。并行计算机系统的可靠性反映了系统为用户提供预定服务的能力,可靠性的高低与系统故障率紧密相关。并行计算容错技术的目的在于降低并行计算机系统的故障率,或者在一定故障率的前提下,提高系统能正确提供服务的概率。
[0004] 容错技术虽然多样,但具有一个共同的本质,就是进行一定程度的冗余计算。所谓冗余计算是指在对关键任务进行多副本的同步计算。最基本的冗余包括时间冗余和空间冗余。时间冗余直观地讲就是复算,包括重复进行的计算和重复进行的通信,以及对多次计算结果的比较。空间冗余又可以细分为软件冗余、硬件冗余和信息冗余。软件冗余就是设置冗余的软件模块;硬件冗余就是设置冗余的硬件部件;而信息冗余就是通过使用附加的数据来描述某些内部状态,通过对这些附加数据的考察就可以实现检错和容错。
[0005] 通过对现有的研究工作分析研究发现,目前国内外已有的并行系统的成果主要基于硬件冗余和软件冗余机制,且主要用于故障检测,而针对故障恢复机制的研究还很少。当前主流的软件容错策略面向时间冗余的方法,导致计算失败的节点需要重新进行任务恢复,由于其恢复时间大于前一个检查点和故障发生时刻之间的时间间隔,从而导致具有依赖关系的任务处于长时间的等待,而这些问题导致了并行效率降低以及计算资源的浪费。

发明内容

[0006] 本发明针对上述问题,提出了一种基于多线程技术的检错与纠错同时进行的错误快速恢复方法。
[0007] 本发明的一种面向数据并行计算容错的快速并行复算方法包括:
[0008] 步骤1,读入数据与数据分发:首先主节点的进程读入数据,按照数据划分策略,启动相应的线程;然后,每个线程依据二次冗余计算策略,将每个数据块分发给两个从节点进程;
[0009] 步骤2,冗余计算:从节点的每个进程按序计算某个数据块的逻辑子块,完成一个逻辑子块后,发送结果给主节点的线程,若是最后一个逻辑子块,则线程结束该数据块的计算,否则,继续执行下一个逻辑子块;
[0010] 步骤3,错误检测:主节点上的线程接收到两个从节点的计算进程的逻辑子块的计算结果后,立即进行该子块的结果一致性检查;若两个子块的计算结果一致,则执行步骤6,线程融合子块结果,否则计算结果有错,则进入步骤4步启动复算过程。若该子块是该数据块的最后一个子块,则进入步骤7进行结果保存,否则线程等待接收下一个子块的计算结果;
[0011] 步骤4,重分发子块:线程检测到某个数据块的逻辑子块的结果有错,则立即分发该出错的逻辑子块给一个从节点的计算进程,然后等待结果;
[0012] 步骤5,子块复算:从节点的进程接收到逻辑子块后,发起该子块的计算过程;计算完成后,进程将子块的结果发给线程;
[0013] 步骤6,数据融合:线程收到逻辑子块的计算结果后,将结果融合到该数据块的结果中;
[0014] 步骤7,结果保存:将该数据块的结果保存。
[0015] 所述步骤3的具体步骤如下:
[0016] 步骤31,线程分别接收到来自计算进程和其副本进程的结果;
[0017] 步骤32,计算不一致累计数:接收结果完毕后,线程开始比较两个结果有无错误;若两个结果矩阵对应的每个单元的值的差为σ,如果σ<ξ,则差值在容许的范围内,否则认为误差大于许可值,累积误差累计数k加1,即k=k+1,其中k初始为0,ξ为容许的最大误差;
[0018] 步骤33,计算误差率:计算方法如下:
[0019]
[0020] 步骤34,当误差率r达到阈值ε时,即r>ε,则说明出现计算错误。
[0021] 本发明的技术特点及有益效果:
[0022] 1、本发明是一种快速的复算调度方法,当某个数据块对应的计算任务出现故障或计算错误时,对该任务对应的数据块进行二次划分和调度复算,从而实现故障的快速恢复。
[0023] 2、本发明提出一种快速复算方法,采用多线程技术使得检错和纠错交错同时进行,提高复算的效率。一方面,检错任务在主进程的线程上进行;另一方面,复算在从节点的进程上进行。二者可以同时进行。
[0024] 3、本发明的方法完全可应用于大规模海量数据的并行数字地形分析的高性能计算的容错处理场合,例如,规则格网并行插值、坡度坡向并行计算、洼地填平并行计算等地形因子提取;可以应用于地理信息处理的高性能计算;也可以应用于基于地理信息的空间决策分析和数据挖掘等应用场合,提高处理效率。

实施方案

[0033] 本发明的一种面向数据并行计算容错的快速并行复算方法包括:
[0034] (1)错误快速恢复方法
[0035] 在数字地形分析领域,数字高程模型拥有海量的数据。处理这样的高程模型数据将会耗费很长的计算时间和需要高效的I/O处理。当一个进程失效时,该计算任务需要重新启动以及所有的计算任务不得不回滚到未出错前的位置重新计算。为了提高处理的效率,一般将海量数字地形高程模型数据划分成许多小的数据块,采用多线程或多进程方法同时处理这些数据块以提高计算的效率。在出现某个数据块对应的计算任务出错时,本发明将该数据块重新划分成更小的数据块,并使用空闲进程进行快速并行计算,从而提高了纠错的效率。该方法称为快速并行复算方法。
[0036] 快速并行复算采用二次冗余策略,即将一个数据块分发到两个进程进行计算,其中一个称为计算进程,另外一个称为备份计算进程。当两个进程计算完毕并将结果发给主进程,主进程将会比较结果是否一致。若不一致,主进程会再次划分该数据块成更小的数据块,并分发法给空闲的进程进行快速计算,该过程称为复算进程。
[0037] 为了简化问题的讨论,下面是一些基本定义。设一个进程集合P={P1,P2,…,Pn},其中Pi为第i个进程,数据块集合B={B1,B2,…,Bn},其中Bi为待处理的第i个数据块,数据结果集R={R1,R2,…,Rn},其中Ri对应第i个数据块的计算结果。
[0038] 本发明快速并行复算方法包括六个步骤,给出如下:
[0039] 步骤1:数据分发。主进程按照事先划分的数据块进行数据分发。为了支持冗余计算,每一个数据块需要分发给两个计算进程。例如,将数据块B分发给进程P和P’。
[0040] 步骤2:冗余计算。在双冗余计算策略下,两个计算进程P和P’分别计算同一个数据块B,R和R’分别为它们的计算结果。
[0041] 步骤3:检错。主进程收到两个进程的计算结果R和R’,然后进行结果比较。如果结果一致,表明计算准确,则主进程保存结果。否则结果不一致,表明计算结果有错,则需要重新划分该数据块和重新计算。
[0042] 步骤4:数据块再次细分。一旦发现该数据块存在计算错误,则主进程将该数据块再次划分为4或者16个子块并再次分发给空闲的计算进程。
[0043] 步骤5:复算。复算进程接收数据子块,并进行计算和返回结果给主进程。
[0044] 步骤6:结果融合。主进程将收到的子块结果进行融合得到该数据块的结果,并保存。
[0045] (2)结果错误检测方法
[0046] 为了提高检错的效率,采用多线程技术并发地检查每个数据的计算结果是否正确。在共享内存模式下,主节点启动多个线程,每个线程负责接收计算进程及其副本进程对某个数据块的计算结果,并进行结果比较。结果检测步骤如下:
[0047] 步骤1:主进程为每个数据块创建一个线程。该线程负责将该数据块分发给一个计算进程和一个副本进程,然后等待接收结果。
[0048] 步骤2:一旦进程计算完毕,并请求发回结果,线程分别接收来自计算进程和其副本进程的结果。
[0049] 步骤3:接收完毕后,线程开始比较结果有无错误。两个结果对应的每个单元的值的差σ给出如下:
[0050] σ=Rij-R’ij,i=1,..,m;j=1,..,n,
[0051] 如果σ<ξ,则差值在容许的范围内,否则认为误差大于许可值,累积误差数k加1,即k=k+1。这里ξ误差上界。
[0052] 步骤4:计算误差率,计算方法如下:
[0053]
[0054] 这里,k为误差累计数。
[0055] 步骤5:当误差率r达到阈值ε时,即r>ε,则说明出现计算错误。这里ε由具体算法确定。
[0056] (3)检错与纠错交错进行的复算方法
[0057] 一旦计算进程与其副本进程的计算结果不一致,则复算过程被启动来快速纠错。线程按照划分原则将出错的数据块再次划分为4个子块,然后分发给四个复算进程进行计算。复算进程计算完成后将结果发给线程进行结果融合。
[0058] 由于检测完整个数据块以后再进行复算,线程检测时间和复算时间开销比较大。如果将数据块按照划分原则进行逻辑划分,比如划分成4个逻辑子块。当计算进程和其副本进程计算完成第一个逻辑子块时,将该子块的结果发送给线程进行比较,然后继续执行第2个逻辑子块,使得对第1个逻辑子块的计算结果正确性检测和第2个逻辑子块的计算同时进行,从而提高了系统的效率。
[0059] 如图1所示,数据块B0被逻辑地划分为4个逻辑子块B00、B01、B02和B03,并被分发生给进程P执行。同时,其副本数据块B0'被分发给副本进程P'执行。当B0的第一个逻辑子块B00和B0'的逻辑子块B00'执行完毕,它们的结果立即发给主节点上对应的线程。线程收到逻辑子块的结果后,立即执行比较过程,检查逻辑子块R00和R00'的而结果是否一致。同时,B0上的逻辑子块B01和B0'的逻辑子块B01'继续执行。
[0060] 一旦逻辑子块B00发生错误,则该子块被发给一个新进程进行快速复算。与此同时,逻辑子块B01及其副本B01'的也在进程P和P'上进行计算完毕,其结果R01和R01'被上传和检查,而逻辑子块B02和B02'开始在进程P和P'上执行。
[0061] 这种方法是一种细粒度的复算过程,使得检错和复算纠错同时进行,从而缩短了复算过程的时间。
[0062] 从上面的分析可以看出,快速复算过程比基本的复算过程要节约较多时间。设C为原始数据块的计算时间,D为检错的时间,则基本复算过程的时间开销为C+D+C/4,即为1.25C+D如图2所示。当采用快速复算过程时,由于检错和复算几乎同时进行,逻辑子块B00,B01,B02的计算与结果检测是同时进行的,所以快速复算的时间开销仅等于C,如图3所示。而当逻辑子块B02出错时,需要额外的C/4纠错时间,快速复算时间开销为C+0.25D,如图4所示。
而当逻辑子块B03出错时,需要额外的D/4检错时间和C/4纠错时间,快速复算时间开销为
1.25C+0.25D,如图5所示。
[0063] 实施例:
[0064] 本发明的实施例提供一种基于冗余计算机制的并行计算快速复算方法,如图6所示,包括以下步骤:
[0065] 步骤101:读入数据与数据分发。首先主节点的进程读入数据,按照数据划分策略,启动相应的线程。然后,每个线程依据二次冗余计算策略,将每个数据块分发给两个从节点进程,对数字地形分析中的坡度算法进行二次冗余计算。最后,每个线程等待计算结果。
[0066] 步骤102:冗余计算。每个从节点的进程接收到数据块后发起计算,每个数据块逻辑上划分成4个逻辑子块。当计算完成一个逻辑子块后,进程将逻辑子块的结果发给主节点上对应的线程,然后继续下一个逻辑子块的计算。
[0067] 步骤103:错误检测。每个线程接收到两个进程的逻辑子块的计算结果后,立即进行该子块的一致性检查比较。若两个子块的计算结果一致,则保存结果,否则进入104步启动复算过程。若该子块是最后一个子块,则进入106步进行数据融合,否则等待处理下一个子块。
[0068] 步骤104:重分发子块。线程分发出错的逻辑子块给一个从节点的进程,然后等待结果。
[0069] 步骤105:子块复算。从节点的进程接收到子块数据后,发起子块的计算过程。计算完成后,进程将子块结果发给线程。
[0070] 步骤106:主节点进程融合结果,并保存结果到磁盘。
[0071] 以下进一步详细地说明本发明实施例中的各个细节问题。
[0072] 本发明所涉及的数据均是点集均匀的格网数字地形高程模型数据。
[0073] 如图7所示,错误检测的具体过程:
[0074] 步骤201:线程分别接收到来自计算进程和其副本进程的结果,对于坡度算法其是一个矩阵。
[0075] 步骤202:计算不一致累计数。接收完毕后,线程开始比较两个结果有无错误。若两个结果矩阵对应的每个单元的值的差为σ。如果σ<0.1,则差值在容许的范围内,否则认为误差大于许可值,累积误差累计数k加1,即k=k+1(k初始为0)。
[0076] 步骤203:计算误差率。计算方法如下:
[0077]
[0078] 步骤204:当误差率r达到阈值0.15时,即r>0.15,则说明出现计算错误。
[0079] 如图8所示,快速并行复算的具体过程:
[0080] 快速并行复算的原理是利用线程检错和进程复算纠错进行,使得检错过程和复算过程同时进行,达到提升整个容错过程的效率,减小容错的开销。每个数据块逻辑上划分成逻辑子块,每个进程计算完每个逻辑子块就发给主节点上的线程进行比较检错。
[0081] 步骤301:冗余计算。从节点的进程计算每个逻辑子块,完成一个子块的计算后发送结果给主节点的线程。若是最后一个逻辑子块,则线程结束该数据块的计算,否则,继续执行下一个逻辑子块。
[0082] 步骤302:错误检测。主节点上的线程接收到两个从节点的计算进程的逻辑子块的计算结果后,立即进行该子块的结果一致性检查。若两个子块的计算结果一致,则线程融合子块结果。否则,计算结果有错,则进入303步启动复算过程。若该子块是该数据块的最后一个子块,则进入306步进行结果保存,否则线程等待接收下一个子块的计算结果。
[0083] 步骤303:重分发逻辑子块。线程检测到某个数据块的逻辑子块的结果有错,则立即分发出错的逻辑子块给一个从节点的计算进程,然后等待结果。
[0084] 步骤304:子块复算。从节点的进程接收到逻辑子块后,发起子块的计算过程。计算完成后,进程将子块的结果发给线程。
[0085] 步骤305:数据融合。线程收到逻辑子块的计算结果后,将结果融合到该数据块的结果中。
[0086] 步骤306:结果保存。将该数据块的结果保存。

附图说明

[0025] 图1是本发明实施例中将数据块按照划分原则进行逻辑划分;
[0026] 图2是基本复算过程的时间开销;
[0027] 图3是本发明实施例中快速复算过程的时间开销;
[0028] 图4当逻辑子块B02出错时,快速复算过程的时间开销;
[0029] 图5当逻辑子块B03出错时,快速复算过程的时间开销;
[0030] 图6是本发明实施例中快速复算方法的流程图;
[0031] 图7是本发明实施例中错误检测的流程图;
[0032] 图8是本发明实施例中快速并行复算的流程图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号