[发明专利]面向共享内存多核结构中线程级并行的数据优化方法及装置有效
申请号: | 201811376636.0 | 申请日: | 2018-11-19 |
公开(公告)号: | CN109522126B | 公开(公告)日: | 2020-04-24 |
发明(设计)人: | 徐金龙 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 共享 内存 多核 结构 线程 并行 数据 优化 方法 装置 | ||
1.一种面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,包含:
针对待优化循环,检测并判定其所有循环携带依赖是否存在私有化有利性情况;并依据检测判定结果,实施数据私有化处理;
检测并判定所有循环携带依赖的私有化有利性情况,包含如下内容:
针对待优化数据的目标循环层,对其中每一个标量,若在该目标循环层中的每次引用均由当前迭代进行赋值,则判定该标量引起的依赖私有化处理,否则,判定该标量无需数据私有化处理;对其中每一个数组,若该数组依赖是由目标循环层内部的循环层携带,并检测每一个数组元素在目标循环层迭代中的每次引用均由当前迭代赋值,则判定该数组引起的依赖私有化处理,否则,判定该数组无需数据私有化。
2.根据权利要求1所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,所述私有化有利性情况是指所有循环携带依赖能否通过数据私有化进行消除。
3.根据权利要求1所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,依据检测判定结果,进行标量引起的依赖私有化处理,包含如下内容:
针对待私有化处理的标量引起的依赖,首先遍历循环体中每条语句,查找并收集其中针对该标量的写操作,并将其加入到集合W中,若集合W为空,则无需进行标量私有化,否则,遍历集合W,针对集合中涉及到的每个标量,检测其是否为规约变量,若是,则将规约变量变换为归纳变量;遍历集合W,对集合中涉及到的每个标量进行私有化处理。
4.根据权利要求1或3所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,采用标量扩展数组或私有化子句修饰来对标量进行私有化处理。
5.根据权利要求1所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,依据检测判定结果,进行数组引起的依赖私有化处理,包含如下内容:
针对待私有化处理的数组引起的依赖,首先遍历循环体中每条该数组访问语句,查找并收集其中针对数组的写操作,将其加入到集合AW中;若集合AW为空,则无需进行数组私有化,否则,遍历集合AW,针对集合中涉及到的每个数组引用,检测其是否存在规约,若存在,则将规约变换为归纳;遍历集合AW,对集合中涉及到的每个数组进行私有化处理。
6.根据权利要求1或5所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,采用数组维数扩展或私有化子句修饰来对数组进行私有化处理。
7.一种面向共享内存多核结构中线程级并行的数据优化装置,其特征在于,基于权利要求1的数据优化方法实现,包含测试模块和优化模块,其中,
测试模块,用于针对待优化数据,检测并判定其所有循环携带依赖是否存在私有化有利性情况,依据检测判定结果将需要私有化处理的情形反馈给优化模块;
优化模块,用于依据测试模块反馈结果实施数据私有化处理。
8.根据权利要求7所述的面向共享内存多核结构中线程级并行的数据优化装置,其特征在于,测试模块包含检测子模块一和检测子模块二,其中,
检测子模块一,用于针对待优化数据的目标循环层,对其中每一个标量,若在该目标循环层中的每次引用均由当前迭代进行赋值,则判定该标量引起的依赖私有化处理,否则,判定该标量无需数据私有化处理;
检测子模块二,用于针对待优化数据的目标循环层,对其中每一个数组,若该数组依赖是由目标循环层内部的循环层携带,并检测每一个数组元素在目标循环层迭代中的每次引用均由当前迭代赋值,则判定该数组引起的依赖私有化处理,否则,判定该数组无需数据私有化。
9.根据权利要求7所述的面向共享内存多核结构中线程级并行的数据优化装置,其特征在于,优化模块包含优化子模块一和优化子模块二,其中,
优化子模块一,用于依据反馈结果,针对待私有化处理的标量引起的依赖,首先遍历循环体中每条语句,查找并收集其中针对该标量的写操作,并将其加入到集合W中,若集合W为空,则无需进行标量私有化,否则,遍历集合W,针对集合中涉及到的每个标量,检测其是否为规约变量,若是,则将规约变量变换为归纳变量;遍历集合W,对集合中涉及到的每个标量进行私有化处理;
优化子模块二,用于依据反馈结果,针对待私有化处理的数组引起的依赖,首先遍历循环体中每条该数组访问语句,查找并收集其中针对数组的写操作,将其加入到集合AW中;若集合AW为空,则无需进行数组私有化,否则,遍历集合AW,针对集合中涉及到的每个数组引用,检测其是否存在规约,若存在,则将规约变换为归纳;遍历集合AW,对集合中涉及到的每个数组进行私有化处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811376636.0/1.html,转载请声明来源钻瓜专利网。