[发明专利]SOR的并行通信优化方法无效
申请号: | 200810239582.3 | 申请日: | 2008-12-12 |
公开(公告)号: | CN101430654A | 公开(公告)日: | 2009-05-13 |
发明(设计)人: | 胡长军;李建江;赵冲冲;张继林 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/13 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | SOR的并行通信优化方法,本发明针对传统的SOR迭代方法并行化中的通信和同步开销问题,提出了多层对称SOR迭代方法,并通过交错条块方法实现串行执行在高性能网络计算环境下的并行化。交错条块方法包括:引入了时滞技术改进区域分解方法,实现空间网格的划分;并通过网格条块重排序,改变网格条块间的数据依赖关系,提高条块执行的并行度,较大幅度地减少了通信启动和同步次数。因此,本发明比传统的区域分解方法和红黑排序方法具有更好的并行效率和可扩展性。 | ||
搜索关键词: | sor 并行 通信 优化 方法 | ||
【主权项】:
1、SOR的并行通信优化方法,其特征在于:优化方法分为两个阶段顺序进行,包括串行执行阶段和并行执行阶段;将1维空间网格点和1维时间点组成1+1维的迭代空间网格系统Snode_space(Z,T),Z为一维的网格空间,T表示时间空间;其中网格点Pnode定义为:Pnode(x,t)={ux(t)|(x∈Z,t∈T)},x表示一维网格点,t表示时间维,ux(t)表示1+1维迭代空间内的网格点;第一阶段:串行执行阶段步骤1. 网格块划分用区域分解方法将网格区域Snode_space(Z,T)在T=0处进行等份划分,划分后使得每块网格Sub_Snode_space(m,t=0)中的网格点数为R,1≤m≤L,m表示t=0时的第m个网格块,L为t=0时的总块数,R满足R>2K,K为单向迭代次数,K的值为cache大小的一半;步骤2. 在网格块的基础上,沿时间轴对网格区域进行划分划分方法采用时滞技术,对每层网格子区域修正其边界,修正方法描述如下:a)对于奇数K层循环中的第一个网格块:Sub_Snode_space(m=1,t=k)=Sub_Snode_space(m=1,t=k-1)-Pynode(m,k-1),其中,Pynode(m,k-1)为第m个网格块在第k-1次迭代时间步的右边界点;b)对于奇数K层循环中的最后一个网格块,即第L个网格块:Sub_Snode_space(m=L,t=k)=Sub_Snode_space(m=L,t=k-1)+Pynode(m-1,k-1),其中,Pynode(m-1,k-1)为第m-1个网格块在第k-1次迭代时间步的右边界点;c)对于奇数K层循环中的除第一个和最后一个网格块外的其他网格块:Sub_Snode_space(m,t=k)=Sub_Snode_space(m,t=k-1)+Pynode(m-1,k-1)-Pynode(m,k-1);d)对于偶数K层循环中的最后一个,即第L个网格块:Sub_Snode_space(m=L,t=k)=Sub_Snode_space(m=L,t=k-1)-Pznode(m,k-1),其中,Pznode(m,k-1)为第m个网格块在第k-1次迭代时间步的左边界点;e)对于偶数K层循环中的第一个网格块:Sub_Snode_space(m=1,t=k)=Sub_Snode_space(m=1,t=k-1)+Pznode(m+1,k-1),其中,Pznode(m+1,k-1)为第m个网格块在第k-1次迭代时间步的左边界点;f)对于偶数K层循环中的除第一个和最后一个网格块外的其他网格块:Sub_Snode_space(m,t=k)=Sub_Snode_space(m,t=k-1)+Pznode(m+1,k-1)-Pznode(m,k-1);以上修正中,1≤k≤K;边界修正后,在奇数K次迭代中,网格块和相应的边界点组成了下层空间网格条块b_tile1~b_tileL,在偶数K次迭代中,网格块和相应的边界点组成了上层网格条块t_tile1~t_tileL;步骤3. 按空间网格条块顺序执行SOR方法网格条块生成后,按条块顺序执行,以条块内部网格点层作为内部执行序,条块序作为外部执行序,其执行顺序描述如下:对于奇数K层循环中,依次执行块b_tile1~b_tileL,每个块内,按时间步顺序执行,每个时间步是按照从左到右的顺序进行计算;对于偶数K层循环中,依次执行块t_tile1~t_tileL,每个块内,按时间步顺序执行,每个时间步是按照从右到左的顺序进行计算;第二阶段,并行执行实现步骤描述如下:步骤4. 依据处理器数目q,将空间计算区域划分为q个子空间sub_domain;第一块子空间的大小和最后一块子区域的大小通过添加和减少K/2个数据进行修正,其它子区域的大小为n/q;步骤5. 该方法分奇数和偶数K次迭代,并且奇数K次迭代与偶数K次迭代执行方向相反;步骤6. 各子区域通过时间轴进行划分,同步骤2执行;步骤7. 对网格条块重新排序:根据多色排序方法将所有的网格块进行重新排序,相邻的网格块使用不同颜色,并对相同颜色使用连续的数字标示;步骤8. 以网格条块为单位执行奇数K次迭代数据更新:首先,执行奇数K次迭代更新,更新所有sub_domain中的“发送条块”,以及第一个条块;然后,将边界数据发送给相邻sub_domain的“接收条块”;最后,更新所有sub_domain中的“接收条块”,以及最后一个条块;步骤9. 以网格条块为单位执行偶数K次迭代数据更新:首先,执行偶数K次迭代更新,更新所有sub_domain中的“发送条块”,以及最后一个条块;然后,将边界数据发送给相邻sub_domain的“接收条块”;最后,更新所有sub_domain中的“接收条块”,以及第一个条块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200810239582.3/,转载请声明来源钻瓜专利网。
- 上一篇:高倍聚光太阳电池封装方法
- 下一篇:投影机灯泡盖锁紧机构