[发明专利]一种并行多层快速多极子树结构复合存储方法有效
申请号: | 201910168049.0 | 申请日: | 2019-03-06 |
公开(公告)号: | CN109947563B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 杨明林;柳瑞青;郭琨毅;盛新庆 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 李爱英;仇蕾安 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种并行多层快速多极子树结构复合存储方法,该方法将多层快速多极子树结构的存储方式分为复合存储层和其他层两类,按盒子并行层的次高层至最底层为复合存储层,采取本地存储树与非本地代理树的复合存储模式:多极子树结构分布式离散存储在各个进程,形成本地存储树;本地存储盒子计算远相互作用过程中所需用到的本层非本地节点顺序压缩存储,形成非本地代理存储树,使用时通过二分查找快速寻址,在其他层,所有进程上完整保存各层多极子树结构,多极子相邻作用盒子对信息填充完毕后,非本地代理树高度压缩去除冗余,仅在多层快速多极子最底层保留,以进一步减小峰值内存,提高节点寻址效率。 | ||
搜索关键词: | 一种 并行 多层 快速 多极 子树 结构 复合 存储 方法 | ||
【主权项】:
1.一种并行多层快速多极子树结构复合存储方法,其特征在于,包括以下步骤:步骤一、读取目标网格的总棱边数,根据预先设定的MPI进程总数,将棱边均分到所有MPI进程;步骤二、根据每个MPI进程分到的棱边,生成多层快速多极子的分层树结构;步骤三、对分层树结构中的每个盒子采用莫顿码编号,各层盒子按照莫顿码顺序存储;步骤四、根据每个棱边中点坐标,确定其在空间三个方向上从属归一化划分值,确定每个棱边所对应的最底层盒子编码;步骤五、根据各层盒子尺寸、平面波采样点数、总进程数以及拟采用的并行方案,确定按盒子并行层的起始层数Lb,则复合存储层的起始层LD的层数为Lb+1;步骤六、从最底层盒子开始各进程都发送本地第一组同父盒的子盒莫顿码至其前一进程,按照此操作自下而上逐层进行直至复合存储层的最高层;从复合存储层的上一层开始,所有进程间通信,收集所有本层盒子的莫顿码,按照此操作自下而上逐层进行直至多层树的最高层;上述过程确定了各层盒子的非空盒子,进而得到多层快速多极子非空盒子的八叉树结构;步骤七、根据步骤六所得的八叉树结构,自复合存储层的最高层LD开始向下遍历,经相邻进程间点对点通信,将LD层离散的各盒子及其所有后代盒子保存到同一进程上;步骤八、根据步骤六所得的八叉树结构确定按盒子并行层最高层的所有盒子在各进程的离散情况,将按盒子并行层最高层的每个盒子及对应的所有后代盒子都保存到相同进程上;步骤九、根据步骤八所得的盒子离散情况,在复合存储层的相邻进程之间发送与离散盒子所对应的棱边信息;步骤十、自多极子树结构的第一层开始,建立各盒子的近相互作用队列,并通过近相互作用队列,建立下一层盒子的次相邻队列直至按盒子并行的最高层的上一层;在按盒子并行层的最高层,找出所有与本地盒子近相互作用的非本地盒子编号序列,根据次相邻作用定义,按盒子并行层的最高层的所有后代节点的次相邻、近相互作用盒子信息都将包含在按盒子并行层的最高层本地盒子的近相互作用队列中,命名此队列为冗余代理树;步骤十一、从多极子树结构的第一层至按盒子并行的最高层,逐层遍历每一层的所有树节点得到近相互作用盒子对列表;从复合存储层LD至Lmax层,若所需访问节点为本地树即可直接进行访问,若所需访问节点非本地,则需对冗余代理树对应层所有节点,以二分查找方式进行快速查找寻址;步骤十二、删除冗余代理树中Lmax‑1至LD层的非本地节点信息,根据Lmax层本地盒子的近相互作用列表,从冗余代理树中提取对应非本地节点信息,生成非本地代理树。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910168049.0/,转载请声明来源钻瓜专利网。