[发明专利]面向异构众核处理器的并行离散更新方法有效
申请号: | 201910904039.9 | 申请日: | 2019-09-24 |
公开(公告)号: | CN112632089B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 姜小成;尤洪涛;毛兴权;顾龙;张立博;孙俊 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 异构众核 处理器 并行 离散 更新 方法 | ||
1.一种面向异构众核处理器的并行离散更新方法,其特征在于:包括以下步骤:
S1、对地址连续的离散更新数据区进行块划分,并将数据块与从核进行映射,使得每个从核负责其中一块数据的更新,具体如下:
S11、对地址连续的离散更新数据区进行块划分的方法为:假设从核个数为N,离散更新数据区的总数据单元个数为M,对表达式“(M+N-1)/N”取整数,获得整数值m,然后将离散更新数据区按连续的m个单元为一组进行块划分,划分为N个数据块,其中前N-1个数据块的单元个数都是m,最后一个数据块的单元个数为(M-(N-1)*m);
S12、离散更新数据块与从核的映射方法为:第一个数据块由编号为0的从核负责更新,第二个数据块由编号为1的从核负责更新,依次类推,最后一个数据块由编号为N-1的从核负责更新;
S13、每个从核在开始执行并行核心循环之前,执行如下操作:
S131、初始化接收缓冲区的有效状态单元数组valid_stat[N],初始值设置为FALSE,其中N为从核数;
S132、更新请求处理状态单元数组deal_stat[N],初始状态设为TRUE;
S133、将与本从核号对应的主存内的离散更新数据块内容拷贝到LDM,形成本地副本;
S14、每个从核均记录离散更新数据区的起始地址a、离散更新数据区的总数据单元个数M、分块大小m、单个数据单元的字节长度b;
S2、每个从核将指令执行过程中产生的离散更新请求进行分类,分为需从核自己处理的离散更新请求和需其它从核处理的离散更新请求,并在产生离散更新请求的地方插入相应的处理函数;
S21、根据S11对离散更新数据区的块划分方法,确定离散更新请求的目的操作数对应的数据块,再根据S12中离散更新数据块与从核的映射关系,确定所述离散更新请求对应的从核号,即该离散更新请求由该对应的从核执行;
S22、若指令执行过程中产生的一个离散更新请求,其目的操作数属于从核自身,则称该离散更新请求为需从核自己处理的离散更新请求,否则,称为需其它从核处理的离散更新请求;
S23、如果一个离散更新请求属于需从核自己处理的离散更新请求,则在产生离散更新请求的地方插入离散更新请求处理程序段func1,用于处理所述离散更新请求,还用于处理其他从核发送过来的离散更新请求;
S24、如果一个离散更新请求属于需其它从核处理的离散更新请求,则在产生离散更新请求的地方插入离散更新请求处理程序段func2,用于将所述离散更新请求发送给对应的从核,还用于处理其他从核发送过来的离散更新请求;
S3、需从核自己处理的离散更新请求的处理程序段func1的处理流程为:
S31、根据S14中记录的信息,确定离散更新请求在本地副本中的位置,并直接对本地副本中对应数据单元进行更新;
S311、获取待更新数据单元的下标索引idx,根据S14中记录的分块大小m,计算出该待更新数据单元所属于的数据块号,即对应的从核号core_id,还可以计算出该待更新数据单元在所属数据块内的偏移下标;
S32、假定本从核的从核号为myid,循环检查接收缓冲区中与每个从核对应的有效状态单元valid_stat[i],若valid_stat[i]为TRUE,表示对应的从核i给自己发送了更新请求,则先将valid_stat[i]修改为FALSE,再按照步骤S31,处理该离散更新请求,最后通过消息将从核i内对应本从核的更新请求完成处理状态单元deal_stat[myid]置为TRUE,重复上述处理,直到接收缓冲区内的离散更新请求全部处理完毕;
S4、需其它从核处理的离散更新请求的处理程序段func2的处理流程为:
S41、获取待更新数据单元的下标索引idx,根据S14中记录的分块大小m,计算出该待更新数据单元所属于的数据块号,即对应的从核号core_id;
S42、等待直到LDM中core_id对应的更新请求完成处理状态单元deal_stat[core_id]变为TRUE状态;
S43、假定本从核的从核号为myid,给编号为core_id的从核发送更新请求,发送的内容包括更新操作的类型、源操作数、目的操作数,待消息完成后,通过消息将编号为core_id的从核内本从核对应的有效状态单元valid_stat[myid]置为TRUE;
S44、循环检查接收缓冲区中与每个从核对应的有效状态单元valid_stat[i],若valid_stat[i]为TRUE,表示对应的从核i给自己发送了更新请求,则先将valid_stat[i]修改为FALSE,再按照步骤S31,处理该离散更新请求,最后通过消息将从核i内对应本从核的更新请求完成处理状态单元deal_stat[myid]置为TRUE,重复上述处理,直到接收缓冲区内的离散更新请求全部处理完毕;
S5、每一个从核在执行完并行核心循环后,将LDM中本地副本写回主存中对应的数据块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910904039.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:广告物料同步方法、装置、设备及介质
- 下一篇:一种建筑材料的加工装置