CN110806938B - 面向多核处理器的自适应容错数据并行计算实现方法 - Google Patents
面向多核处理器的自适应容错数据并行计算实现方法 Download PDFInfo
- Publication number
- CN110806938B CN110806938B CN201911000659.6A CN201911000659A CN110806938B CN 110806938 B CN110806938 B CN 110806938B CN 201911000659 A CN201911000659 A CN 201911000659A CN 110806938 B CN110806938 B CN 110806938B
- Authority
- CN
- China
- Prior art keywords
- core
- calculation
- data
- cores
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开一种面向多核处理器的自适应容错数据并行计算实现方法,该方法步骤包括:步骤1:设置一个全局寄存器R;步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取全局寄存器R;步骤3:目标多核处理器的每个核每次计算时,分别计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并计算各核每次计算时的实际负载;步骤4:目标多核处理器的每个核分别根据每次计算时的数据块地址以及实际负载执行计算;步骤5:完成所有计算数据量的计算后退出。本发明能够在部分核失效时仍自适应正确执行数据并行计算,具有实现方法简单、自适应容错性能好且应用灵活等优点。
Description
技术领域
本发明涉及多核处理器技术领域,尤其涉及一种面向多核处理器的自适应容错数据并行计算实现方法。
背景技术
随着功耗和散热问题的日益突出,能耗逐步成为影响高性能计算系统的越来越重要的因素,使得处理器的体系结构朝着多核方向发展,目前多核处理器已经占据了高性能计算市场的绝大部分,在嵌入式应用平台方面,多核处理器的应用也越来越广泛。
面向多核处理器的并行方法主要有两类:数据并行与任务并行,其中数据并行应用如多路网络流量处理、多个音频/视频通道数据处理等,任务并行应用则是将任务按时间顺序管道化以满足性能,如视频编解码、软件无线电等。此外还包括两者的混合任务类型,如音频/视频、无线电/控制、报文路由/加密/流量分形/过滤等。数据并行的同构应用通常布局简单、固定,各处理器在运行时可能执行相同的任务或同时被调度,相应的编程挑战是找到与应用相匹配的并行方法,将任务直接映射到硬件体系结构。分块矩阵乘法方法是最典型的数据并行计算之一,矩阵乘法(General Matrix-Matrix Multiplication,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所示,包括编号依次为0,1,2,...,q-1的同构核心,各核共享片外存储器,计算数据和计算结果都存储在共享片外存储器中,各个核通过数据并行计算共同完成计算任务。在具体应用实施例中,面向多核处理器执行分块矩阵乘法(C=C+A*B)数据并行的计算如图2所示,采用数据并行的并行计算方法,将C、B矩阵按照列以基本分块大小BLOCK为单位进行分块划分,每个核满额负载下的单次计算任务为:
Ci=C+A*Bi,其中Ci,Bi数据规模为基本分块大小BLOCK。
设多核处理器当前计算任务的数据总大小为TOTAL单位,数据起始地址为ADDRESS,正常核单次满额计算的数据分块大小为BLOCK单位,单位即是根据当前计算任务确定的行、列或其他的基本数据粒度。如图3所示,本实施例面向多核处理器的自适应容错数据并行计算实现方法的具体步骤包括:
步骤1:设置一个用于记录目标多核处理器中各核存活状态信息的全局寄存器R。
通过设置全局寄存器R记录多核处理器当前所有核的存活状态,具体每个核的存活状态使用1位表示,其中使用0表示失效、1表示存活,核0到核q-1的存活状态信息从低位到高位依次保存,即最低位保存0核的存活状态,依次往上,第q-1位保存q-1核的存活状态。
步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取全局寄存器R中各核的存活状态信息。
多核处理器的各核启动时,通过读取全局寄存器R获取各核的存活状态,如当读取到全局寄存器R中对应核i的位置为1时,表明核i当前处于存活状态,为0时则处于失效状态。
上述步骤2中还包括根据读取的各核的存活状态信息,计算目标多核处理器当前能够正常启动的总核数NUMBER_OF_CORES,以及分别计算各核之前能够正常启动的核的个数得到累积正常启动核数CORES_NUM_PREV。多核处理器的每个核在启动时读取上述全局寄存器R后,分别计算能够正常启动的总核数NUMBER_OF_CORES,每个核对应的累积正常启动核数CORES_NUM_PREV,具体按照核ID递增的顺序排列,若当前核失效,则当前核的CORES_NUM_PREV为0。
步骤3:目标多核处理器的每个核每次计算时,分别根据读取的各核的存活状态信息计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并根据计算得到的剩余计算数据量计算各核每次计算时的实际负载。
在读取得到各核的存活状态信息后,可以确定哪些为正常核、哪些为失效核,基于各核的状态进一步计算各核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,使得可以只由存活的核来执行计算任务,避免失效核对数据并行任务执行的影响。
本实施例具体根据每次计算时对应的总核数NUMBER_OF_CORES以及累积正常启动核数CORES_NUM_PREV计算数据块地址以及剩余计算数据量,其中目标多核处理器的每个核每次计算时,所需负责计算的数据块地址具体按下式计算得到:
ADDRESS+(n*NUMBER_OF_CORES+CORES_NUM_PREV)*BLOCK(1)
其中,n为当前核执行的任务次数,具体配置从0开始,每执行完一次后增1。
目标多核处理器的每个核每次计算时,当前计算任务的剩余计算数据量NEXT具体按下式计算得到:
NEXT = TOTAL-n*NUMBER_OF_CORES*BLOCK (2)
其中,n为当前核执行的任务次数,TOTAL为目标多核处理器当前计算任务的数据总大小,从0开始,每执行完一次增1。
上述根据计算得到的剩余计算数据量计算各核每次计算时的实际负载具体包括:
若剩余计算数据量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,则当前核计算任务结束。
由上述过程,即可确定各核每次计算时的数据块地址、剩余计算数据量NEXT以及每次计算时的实际负载。
步骤4:目标多核处理器的每个核分别根据步骤3计算得到的每次计算时的数据块地址以及实际负载执行计算。
步骤5:完成所有计算数据量的计算后退出。
在具体应用实施例中,判断剩余计算数据量是否<=0,如果是则计算结束,否则返回执行步骤3。
本实施例通过上述方法,通过配置一个全局寄存器记录多核处理器各核的存活状态,各核执行数据并行处理时依据各核的存活状态来计算每次计算时的数据地址、剩余计算数据量以及各核的实际负载,使得在部分核失效的情况下不做任何修改各核就能够保持自适应的正常运行,避免失效核对数据并行计算的影响,解决部分核失效下的容错问题,使得只需要根据正常的多核处理器设计和优化应用程序,从而可以专注于业务功能实现,无需关注核失效的问题,且在部分核失效时,数据并行应用程序仍然能够在降级情况下正确运行。
以下以在具体应用实施例中采用本发明上述方法实现矩阵乘法C=C+A*B数据并行计算为例,对本发明进行进一步说明,其中多核处理器的核数为12,BLOCK为48。
如图4所示,本实施例实现数据并行计算的详细流程为:
步骤1:设置用于记录多核处理器中各核存活状态信息的全局寄存器R,如图4(a)所示,全局寄存器R的低12位值具体为1110 1111 1101,即核1以及核8对应为失效状态,其余为存活状态。
步骤2:多核处理器的每个核在启动时读取全局寄存器R,计算得到两个值:多核处理器能够正常启动的总核数NUMBER_OF_CORES以及累积正常启动核数CORES_NUM_PREV,若当前核失效,则当前核的CORES_NUM_PREV为0。上述全局寄存器R的低12位值有10个1,表示有10个核正常启动,NUMBER_OF_CORES的值为10。
按照核ID递增的顺序排列,各核对应的累积正常启动核数CORES_NUM_PREV分别为:
核0:CORES_NUM_PREV=0
核1:CORES_NUM_PREV=0
核2:CORES_NUM_PREV=1
核3:CORES_NUM_PREV=2
核4:CORES_NUM_PREV=3
核5:CORES_NUM_PREV=4
核6:CORES_NUM_PREV=5
核7:CORES_NUM_PREV=6
核8:CORES_NUM_PREV=0
核9:CORES_NUM_PREV=7
核10:CORES_NUM_PREV=8
核11:CORES_NUM_PREV=9
步骤3:多核处理器的每个核根据计算得到的总核数NUMBER_OF_CORES和累积正常启动核数CORES_NUM_PREV值,按照上式(1)计算各核负责计算任务的数据块地址。
假定执行第一次计算,则n=0,BLOCK=48列。
每个核计算本核计算的B、C矩阵的数据地址分别为:
B矩阵的数据地址=B矩阵首地址+CORES_NUM_PREV*BLOCK
C矩阵的数据地址=C矩阵首地址+CORES_NUM_PREV*BLOCK
各个核计算的B矩阵数据地址分别为:
核0 B矩阵首地址+0*48
核1 失效
核2 B矩阵首地址+1*48
核3 B矩阵首地址+2*48
核4 B矩阵首地址+3*48
核5 B矩阵首地址+4*48
核6 B矩阵首地址+5*48
核7 B矩阵首地址+6*48
核8 失效
核9 B矩阵首地址+7*48
核10 B矩阵首地址+8*48
核11 B矩阵首地址+9*48
各个核计算的C矩阵数据地址分别为:
核0 C矩阵首地址+0*48
核1 失效
核2 C矩阵首地址+1*48
核3 C矩阵首地址+2*48
核4 C矩阵首地址+3*48
核5 C矩阵首地址+4*48
核6 C矩阵首地址+5*48
核7 C矩阵首地址+6*48
核8 失效
核9 C矩阵首地址+7*48
核10 C矩阵首地址+8*48
核11 C矩阵首地址+9*48
以及多核处理器的每个核按照上式(2)计算当前计算任务的剩余计算数据量NEXT和本次计算的实际负载,其中:
若剩余计算数据量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=822,大于10*48,则每个核的本次计算为满负荷运算,当前核的计算负载为BLOCK=48列,计算完成后输出BLOCK=48列对应的计算结果。
假定当前剩余计算数据量NEXT=342,因为7*48<NEXT<8*48,所以各个核的实际负载计算如下:
核0 342>1*48
核1 失效
核2 342>2*48
核3 342>3*48
核4 342>4*48
核5 342>5*48
核6 342>6*48
核7 342>7*48
核8 失效
核9 342<8*48
核10 342<9*48
核11 342<10*48
由上面计算得知,满负荷运算计算并且传出BLOCK=48列结果的核是:
核0 核2 核3 核4 核5 核6 核7
部分负载计算的核是:
核9 NEXT-CORES_NUM_PREV*BLOCK列=342-7*48=6
当前核计算并且传出6列数据
核10 NEXT-CORES_NUM_PREV*BLOCK列=342-8*48<0
当前核计算任务结束
核11 NEXT-CORES_NUM_PREV*BLOCK列=342-9*48<0
当前核计算任务结束
步骤4:根据步骤3计算得到计算任务的数据块地址和本次计算的实际负载执行计算任务。
步骤6:判断剩余计算数据量NEXT是否<=0,若不是,则转步骤3,若是则计算结束。
上述示例中,由于NEXT=342-NUMBER_OF_CORES*BLOCK=342-10*48<0,所以计算结束。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (5)
1.一种面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,步骤包括:
步骤1:设置一个用于记录目标多核处理器中各核存活状态信息的全局寄存器R;
步骤2:当需目标多核处理器执行数据并行计算时,目标多核处理器的每个核启动后分别读取所述全局寄存器R中各核的存活状态信息,根据读取的所述各核的存活状态信息,计算目标多核处理器当前能够正常启动的总核数NUMBER_OF_CORES,以及分别计算各核之前能够正常启动的核的个数得到累积正常启动核数CORES_NUM_PREV;
步骤3:目标多核处理器的每个核每次计算时,分别根据读取的所述各核的存活状态信息计算各个存活核所需负责计算的数据块地址以及当前计算任务的剩余计算数据量,并根据计算得到的所述剩余计算数据量计算各核每次计算时的实际负载,根据每次计算时对应的所述总核数NUMBER_OF_CORES以及所述累积正常启动核数CORES_NUM_PREV计算所述数据块地址以及所述剩余计算数据量;
步骤4:目标多核处理器的每个核分别根据计算得到的每次计算时的所述数据块地址以及实际负载执行计算;
步骤5:完成所有计算数据量的计算后退出;
所述步骤5的具体步骤包括:判断所述剩余计算数据量是否<=0,如果是则计算结束,否则返回执行步骤3。
2.根据权利要求1所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,目标多核处理器的每个核每次计算时,所需负责计算的所述数据块地址具体按下式计算得到:
ADDRESS+(n*NUMBER_OF_CORES+CORES_NUM_PREV)*BLOCK
其中,n为当前核执行的任务次数,ADDRESS为数据起始地址,BLOCK为正常核单次满额计算的数据分块大小。
3.根据权利要求2所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,目标多核处理器的每个核每次计算时,当前计算任务的所述剩余计算数据量NEXT具体按下式计算得到:
NEXT = TOTAL-n*NUMBER_OF_CORES*BLOCK
其中,n为当前核执行的任务次数,TOTAL为目标多核处理器当前计算任务的数据总大小。
4.根据权利要求3所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,所述步骤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.根据权利要求1~4中任意一项所述的面向多核处理器的自适应容错数据并行计算实现方法,其特征在于,所述步骤1中全局寄存器R中具体使用1位表示每个核的存活状态信息,其中使用0表示失效、1表示存活,各核的存活状态信息从低位到高位依次保存在所述全局寄存器R中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911000659.6A CN110806938B (zh) | 2019-10-21 | 2019-10-21 | 面向多核处理器的自适应容错数据并行计算实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911000659.6A CN110806938B (zh) | 2019-10-21 | 2019-10-21 | 面向多核处理器的自适应容错数据并行计算实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806938A CN110806938A (zh) | 2020-02-18 |
CN110806938B true CN110806938B (zh) | 2022-06-07 |
Family
ID=69488691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911000659.6A Active CN110806938B (zh) | 2019-10-21 | 2019-10-21 | 面向多核处理器的自适应容错数据并行计算实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806938B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核系统容错方法 |
CN105204952A (zh) * | 2015-08-21 | 2015-12-30 | 北京控制工程研究所 | 一种多核操作系统容错管理方法 |
CN107463442A (zh) * | 2017-07-12 | 2017-12-12 | 北京控制工程研究所 | 一种星载多核SoC任务级负载均衡并行调度方法 |
CN108038014A (zh) * | 2017-11-30 | 2018-05-15 | 中国人民解放军国防科技大学 | 一种图像压缩多核并行容错方法、计算机、处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769360B2 (en) * | 2010-10-14 | 2014-07-01 | International Business Machines Corporation | Dynamic detection and identification of the functional state of multi-processor cores |
-
2019
- 2019-10-21 CN CN201911000659.6A patent/CN110806938B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核系统容错方法 |
CN105204952A (zh) * | 2015-08-21 | 2015-12-30 | 北京控制工程研究所 | 一种多核操作系统容错管理方法 |
CN107463442A (zh) * | 2017-07-12 | 2017-12-12 | 北京控制工程研究所 | 一种星载多核SoC任务级负载均衡并行调度方法 |
CN108038014A (zh) * | 2017-11-30 | 2018-05-15 | 中国人民解放军国防科技大学 | 一种图像压缩多核并行容错方法、计算机、处理器 |
Non-Patent Citations (2)
Title |
---|
Configurable Isolation:Building High Availability Systems with Commodity Multi-Core Processors;Nidhi Aggarwal et al.;《ACM SIGARCH Computer Architecture News》;20070531;全文 * |
带冗余核的NoC众核系统容错技术研究;吴子旭;《中国博士学位论文全文数据库 信息科学辑》;20160315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110806938A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111259078B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
JP5298393B2 (ja) | 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 | |
US8990657B2 (en) | Selective masking for error correction | |
US8533572B2 (en) | Error correcting code logic for processor caches that uses a common set of check bits | |
US20120233498A1 (en) | Hierarchical error correction for large memories | |
EP3432157B1 (en) | Data table joining mode processing method and apparatus | |
CN110442535B (zh) | 提高分布式固态盘键值缓存系统可靠性的方法及系统 | |
US20150358037A1 (en) | Method for encoding msr (minimum-storage regenerating) codes and repairing storage nodes | |
WO2020047707A1 (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
KR101572038B1 (ko) | 메모리 어레이의 에러 수정 방법 | |
US20210216390A1 (en) | Methods of data concurrent recovery for a distributed storage system and storage medium thereof | |
CN111124720B (zh) | 一种自适应的检查点间隔动态设置方法 | |
WO2018000788A1 (zh) | 一种数据存储方法和装置、一种数据恢复方法和装置 | |
CN104102549A (zh) | 一种实现多线程互斥操作的方法、装置和芯片 | |
CN110535476B (zh) | Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质 | |
CN110806938B (zh) | 面向多核处理器的自适应容错数据并行计算实现方法 | |
US11106514B2 (en) | Message stream processor microbatching | |
US10819622B2 (en) | Batch checkpointing for inter-stream messaging system | |
WO2020238653A1 (zh) | 一种分布式系统环境下的编码方法、解码方法和对应装置 | |
CN109150198B (zh) | 一种极化码的交织处理方法及装置 | |
US8856461B2 (en) | Request controlling | |
CN115686901B (zh) | 内存故障分析方法及计算机设备 | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
CN117331497A (zh) | 一种磁盘阵列算法任务处理方法、装置、设备及介质 | |
CN117931830A (zh) | 数据恢复方法、装置、电子设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |