面向多核处理器的自适应容错数据并行计算实现方法技术

技术编号:23363151 阅读:18 留言:0更新日期:2020-02-18 17:18
本发明专利技术公开一种面向多核处理器的自适应容错数据并行计算实现方法,该方法步骤包括:步骤1:设置一个全局寄存器R;步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取全局寄存器R;步骤3:目标多核处理器的每个核每次计算时,分别计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并计算各核每次计算时的实际负载;步骤4:目标多核处理器的每个核分别根据每次计算时的数据块地址以及实际负载执行计算;步骤5:完成所有计算数据量的计算后退出。本发明专利技术能够在部分核失效时仍自适应正确执行数据并行计算,具有实现方法简单、自适应容错性能好且应用灵活等优点。

Adaptive fault tolerant data parallel computing for multi-core processors

【技术实现步骤摘要】
面向多核处理器的自适应容错数据并行计算实现方法
本专利技术涉及多核处理器
,尤其涉及一种面向多核处理器的自适应容错数据并行计算实现方法。
技术介绍
随着功耗和散热问题的日益突出,能耗逐步成为影响高性能计算系统的越来越重要的因素,使得处理器的体系结构朝着多核方向发展,目前多核处理器已经占据了高性能计算市场的绝大部分,在嵌入式应用平台方面,多核处理器的应用也越来越广泛。面向多核处理器的并行方法主要有两类:数据并行与任务并行,其中数据并行应用如多路网络流量处理、多个音频/视频通道数据处理等,任务并行应用则是将任务按时间顺序管道化以满足性能,如视频编解码、软件无线电等。此外还包括两者的混合任务类型,如音频/视频、无线电/控制、报文路由/加密/流量分形/过滤等。数据并行的同构应用通常布局简单、固定,各处理器在运行时可能执行相同的任务或同时被调度,相应的编程挑战是找到与应用相匹配的并行方法,将任务直接映射到硬件体系结构。分块矩阵乘法方法是最典型的数据并行计算之一,矩阵乘法(GeneralMatrix-MatrixMultiplication,GEMM)是线性代数函数库BLAS库的最常用的核心算法程序之一,是非常典型的计算密集型和访存密集型算法应用。在多核处理器平台上,分块矩阵乘法方法是提升大规模GEMM性能的主要方法。但是多核处理器的部分核可能会失效,例如太空运行的卫星受太空粒子辐射的影响,多核处理器器在生产时也会由于良率问题,有些多核处理器会存在部分核失效问题,而现有技术中采用多核处理器执行数据并行计算时,数据并行程序是根据原来的处理核数分割数据任务,因而通常会面临的一个问题:在多核处理器的部分核失效时,会导致并行程序不能正确的执行,为保证正确执行则必须进行一定的修改。目前尚未有有效的方案以解决上述多核处理器中部分核失效无法确保并行程序正确执行的问题,因此,在面向多核处理器的数据并行计算中,在不做任何修改的情况下,如何保证当部分核失效时原有的并行程序还能够在正常多核处理器上正确运行是亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种实现方法简单、自适应容错性能好、应用灵活的面向多核处理器的自适应容错数据并行计算实现方法,能够在部分核失效时仍自适应正确执行数据并行计算。为解决上述技术问题,本专利技术提出的技术方案为:一种面向多核处理器的自适应容错数据并行计算实现方法,步骤包括:步骤1:设置一个用于记录目标多核处理器中各核存活状态信息的全局寄存器R;步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取所述全局寄存器R中各核的存活状态信息;步骤3:目标多核处理器的每个核每次计算时,分别根据读取的所述各核的存活状态信息计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并根据计算得到的所述剩余计算数据量计算各核每次计算时的实际负载;步骤4:目标多核处理器的每个核分别根据计算得到的每次计算时的所述数据块地址以及实际负载执行计算;步骤5:完成所有计算数据量的计算后退出。进一步的,所述步骤2中还包括根据读取的所述各核的存活状态信息,计算目标多核处理器当前能够正常启动的总核数NUMBER_OF_CORES,以及分别计算各核之前能够正常启动的核的个数得到累积正常启动核数CORES_NUM_PREV。进一步的,所述步骤3中,根据每次计算时对应的所述总核数NUMBER_OF_CORES以及所述累积正常启动核数CORES_NUM_PREV计算所述数据块地址以及所述剩余计算数据量。进一步的,目标多核处理器的每个核每次计算时,所需负责计算的所述数据块地址具体按下式计算得到:ADDRESS+(n*NUMBER_OF_CORES+CORES_NUM_PREV)*BLOCK其中,n为当前核执行的任务次数,ADDRESS为数据起始地址,BLOCK为正常核单次满额计算的数据分块大小。进一步的,目标多核处理器的每个核每次计算时,当前计算任务的所述剩余计算数据量NEXT具体按下式计算得到:NEXT=TOTAL-n*NUMBER_OF_CORES*BLOCK其中,n为当前核执行的任务次数,TOTAL为目标多核处理器当前计算任务的数据总大小。进一步的,所述步骤3中根据计算得到的所述剩余计算数据量计算各核每次计算时的实际负载包括:若所述剩余计算数据量NEXT>=CORES_NUM_PREV*BLOCK,则判定当前核的当前次计算为满负荷运算,确定当前核的计算负载为BLOCK单位,计算完成后输出BLOCK单位对应的计算结果;若所述剩余计算数据量NEXT<CORES_NUM_PREV*BLOCK,则继续判断是否满足:所述剩余计算数据量NEXT>=(下一个存活核的CORES_NUM_PREV)*BLOCK,如果是,则判定当前核的当前次计算为满负荷运算,确定当前核的计算负载为BLOCK单位,计算完成后输出BLOCK单位对应的计算结果;如果不是,则确定当前核的当前次计算负载为(NEXT-CORES_NUM_PREV*BLOCK)单位,计算完成后输出(NEXT-CORES_NUM_PREV*BLOCK)单位对应的计算结果;若NEXT-CORES_NUM_PREV*BLOCK<0,则当前核计算任务结束。进一步的,所述步骤5的具体步骤包括:判断所述剩余计算数据量是否<=0,如果是则计算结束,否则返回执行步骤3。进一步的,所述步骤1中全局寄存器R中具体使用1位表示每个核的存活状态信息,其中使用0表示失效、1表示存活,各核的存活状态信息从低位到高位依次保存在所述全局寄存器R中。与现有技术相比,本专利技术的优点在于:1、本专利技术面向多核处理器的自适应容错数据并行计算实现方法,通过配置一个全局寄存器记录多核处理器各核的存活状态,各核执行数据并行处理时依据各核的存活状态来计算每次计算时的数据地址、剩余计算数据量以及各核的实际负载,使得在部分核失效的情况下不做任何修改各核就能够保持自适应的正常运行,避免失效核对数据并行计算的影响,解决部分核失效下的容错问题。2、本专利技术面向多核处理器的自适应容错数据并行计算实现方法,数据并行程序设计过程中只需按照正常的多核处理器设计和优化,无需关注核失效的问题,使得可以专注于数据并行程序中业务功能实现,在部分核失效时,数据并行应用程序仍然能够在降级情况下正确运行。附图说明图1是本实施例所采用的多核处理器的结构示意图。图2是在具体应用实施例中多核处理器执行分块矩阵乘法数据并行计算的原理示意图。图3是本实施例面向多核处理器的自适应容错数据并行计算实现方法的流程示意图。图4是本专利技术具体应用实施例中面向多核处理器实现数据并行计算的原理示意图。具体实施方式以下结合说明书附图和具体优选的实施例对本专利技术作本文档来自技高网
...

【技术保护点】
1.一种面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,步骤包括:/n步骤1:设置一个用于记录目标多核处理器中各核存活状态信息的全局寄存器R;/n步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取所述全局寄存器R中各核的存活状态信息;/n步骤3:目标多核处理器的每个核每次计算时,分别根据读取的所述各核的存活状态信息计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并根据计算得到的所述剩余计算数据量计算各核每次计算时的实际负载;/n步骤4:目标多核处理器的每个核分别根据计算得到的每次计算时的所述数据块地址以及实际负载执行计算;/n步骤5:完成所有计算数据量的计算后退出。/n

【技术特征摘要】
1.一种面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,步骤包括:
步骤1:设置一个用于记录目标多核处理器中各核存活状态信息的全局寄存器R;
步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取所述全局寄存器R中各核的存活状态信息;
步骤3:目标多核处理器的每个核每次计算时,分别根据读取的所述各核的存活状态信息计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并根据计算得到的所述剩余计算数据量计算各核每次计算时的实际负载;
步骤4:目标多核处理器的每个核分别根据计算得到的每次计算时的所述数据块地址以及实际负载执行计算;
步骤5:完成所有计算数据量的计算后退出。


2.根据权利要求1所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,所述步骤2中还包括根据读取的所述各核的存活状态信息,计算目标多核处理器当前能够正常启动的总核数NUMBER_OF_CORES,以及分别计算各核之前能够正常启动的核的个数得到累积正常启动核数CORES_NUM_PREV。


3.根据权利要求2所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,所述步骤3中,根据每次计算时对应的所述总核数NUMBER_OF_CORES以及所述累积正常启动核数CORES_NUM_PREV计算所述数据块地址以及所述剩余计算数据量。


4.根据权利要求3所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,目标多核处理器的每个核每次计算时,所需负责计算的所述数据块地址具体按下式计算得到:
ADDRESS+(n*NUMBER_OF_CORES+CORES_NUM_PREV)*BLOCK
其中,n为当前核执行的任务次数,ADDRESS为数据起始地址,BLOCK为正常核单次满额计算的数据分块大小。


5.根据权利要求3所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于...

【专利技术属性】
技术研发人员:刘仲郭阳扈啸田希邓林陈海燕李勇吴虎成孙书为李程
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

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

1