[发明专利]一种应用于解决粒子模拟并行数据竞争的归约方法有效
| 申请号: | 201710747274.0 | 申请日: | 2017-08-28 |
| 公开(公告)号: | CN107704266B | 公开(公告)日: | 2021-03-30 |
| 发明(设计)人: | 金晓林;刘腾宇;李斌;杨中海 | 申请(专利权)人: | 电子科技大学 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F9/52;G06F30/25 |
| 代理公司: | 电子科技大学专利中心 51203 | 代理人: | 闫树平 |
| 地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 应用于 解决 粒子 模拟 并行 数据 竞争 方法 | ||
1.一种应用于解决粒子模拟并行数据竞争的归约方法,其具体步骤如下:
步骤1、每个线程计算一个粒子的数据分配,对分配的数据附带网格编号Nn和分配的数据大小j,存储进待排序数组,设其为数组1,其中N为网格编号的名称,n为网格编号的值;
步骤2、对数组1排序,使得具有数据竞争的数据是彼此相邻的;
步骤3、申请与数组1大小相同的辅助归约数组,设其为数组2,并且申请大小与网格规模一样的最终结果数组,用来存储最终的网格数据;
步骤4、进行归约计算:每个线程取相邻三个数据,然后根据三个数据所属网格的信息分成四种情形,按照不同的方式进行归约计算,具体如下:
1)如果相邻三个数据的前两个数据属于同一个网格,则前两个数据求和然后和第三个数据一起写回数组2;
2)如果相邻三个数据的后两个数据属于同一个网格,则对后面两个数据求和然后和第一个数据写回数组2;
3)如果所取的相邻三个数据所属网格均不相同,则将中间数据写回结果数组,此时网格编号为Nn的网格的数据值就是j,然后将第一个和第三个数据写回数组2;
4)当每次归约时的数据集不能被3整除时,末尾线程不足三个数据,末尾线程这时直接将数据写回数组2;
步骤5、交换数组1和数组2,重复步骤4,直到最后线程内都没有可以相加的数据,再把剩下的数据写到结果数组里,结果数组就为所求所有网格点的数据值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710747274.0/1.html,转载请声明来源钻瓜专利网。





