CN102520917A - 一种三维不可压缩管流的并行化方法 - Google Patents
一种三维不可压缩管流的并行化方法 Download PDFInfo
- Publication number
- CN102520917A CN102520917A CN2011104202297A CN201110420229A CN102520917A CN 102520917 A CN102520917 A CN 102520917A CN 2011104202297 A CN2011104202297 A CN 2011104202297A CN 201110420229 A CN201110420229 A CN 201110420229A CN 102520917 A CN102520917 A CN 102520917A
- Authority
- CN
- China
- Prior art keywords
- stick
- border
- data
- grid
- iteration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明了公开了一种三维不可压缩管流的并行化方法,它是一种面向分布式集群的并行化方法。本发明对传统的线性系统进行替换,通过引入网格条块的执行顺序,在不改变传统迭代方法性质的同时,提高了执行过程的数据局部性;通过对迭代空间进行区域分解和网格条块的重新排序,实现了方法的并行化;通过循环交错条块技术和增加时间维对迭代空间进行时滞划分,减小了执行过程的通信和同步开销;在迭代的实际执行过程中,构造了并行方法的性能自动调优器,通过探测找到效率最优情况下的参数数值组合,并固定参数值,实现并行方法的运行效率最优。
Description
技术领域
本发明属于流体力学数值模拟领域,涉及一种三维不可压缩管流的并行化方法。
背景技术
在流体力学数值模拟中,磁流体管流的数值模拟研究是聚变反应堆双冷或者双功能液态锂铅包层的研究的热点之一。在聚变反应堆包层应用中,要想得到正确的数值模拟解,必须保证垂直于外加磁场壁面附近的哈德曼层( )有一定数量的网格。实际的磁流体管流的数值模拟当中由于外加磁场和流动的液态金属的相互作用以及网格要求的特殊性导致网格规模大及迭代求解过程缓慢,常常持续数小时或数天,因此必须采用并行方法才能完成磁流体管流的数值模拟。
在计算流体力学数值模拟中,并行技术一般采用物理区域分割并行方法,计算网格划分和计算区域分解是实现粗粒度并行的最直接有效的任务分配策略。区域分解方法因其适用于构造并行算法的特点,被逐渐推广到CFD领域,并在近年来发展迅速,已经成为并行计算中最活跃的研究之一,在流体力学方面都有着重要的应用。
有限差分方法的并行一直是数值计算的重要研究对象,关于有限差分的并行化,还有4个问题需要进一步的优化。(1)数据局部性问题。传统的迭代方法,对迭代间的数据局部性优化效果有限。(2)可扩展性问题。传统的并行化迭代算法在迭代内和迭代间都需要同步操作以维护数据依赖关系。处理机进行全局的同步,会增加开销时间,当处理机的台数增多时,全局同步的代价变得更加重要,并且影响算法的可扩展性。(3)通信和同步开销问题。由于传统的并行化算法需要在每次迭代过程中通过通信操作得到边界数据,通信开销制约了并行算法的效率。并且当问题给定时,随着处理机台数的增大,并行纯计算时间在减少,而通信时间在不断增加,这必将影响并行算法的可扩展性。(4)数据依赖关系问题。迭代空间划分所引入的条块依赖关系严重阻碍了循环的并行化,大量的Cache缺失和TLB容量缺失会以及通信开销严重影响传统迭代算法程序的性能,因此需要研究减少通信时间的新方法。
发明内容
本发明提出了三维不可压缩管流的并行化方法,它面向分布式集群并具有自动调优的功能,通过使用交错条块和网络条块重排序技术,提高并行执行的性能。
本发明所采用的技术方案是:
本发明是将迭代空间分块引入到执行序中,通过时间轴方向将迭代空间划分成网格条块,实现了对同一网格块进行递归式多次迭代步更新,从而在不改变原有迭代方法性质的同时,提高了条块内数据局部性;通过改变条块网格条块间数据依赖关系,提高条块执行的并行度。
本发明具体步骤为:
1、迭代空间的网格条块划分:依据处理器数目P及处理器拓扑结构,利用区域分解法将空间计算区域划分成P个子空间。
2、沿时间轴方向对迭代空间进行划分:采用时滞技术,在迭代时间步上对每层迭代的子空间进行边界修正。定义有向图存放相邻网格块的数据依赖关系。若网格块与网格块边界相连且正向迭代时的更新顺序在之前,则,即的迭代更新依赖条块中的边界数据。对迭代空间划分后,形成网格条块。
3、对网格条块进行重新排序。根据处理器个数,对所有的网格条块进行重新排序,实现并行化。
5、以网格条块为单位执行奇数次迭代数据更新。执行奇数次迭代更新,更新顺序按照重新排序之后各个子空间内的条块顺序。当更新奇数中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相邻的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新。空间条块的边界网格点必须发送给其它相邻子空间以维护数据依赖关系。"边界递减条条块"在执行更新后将自身边界网格数据发送给"边界递增条块"。"边界递增条块"必须在接受其它子空间条块发送的边界网格数据后才执行更新。"边界偏移条块"在执行前后需要接收数据和发送数据。其余的条块为"边界不变条块",其自身计算不需要其它处理器中网格条块的边界值,也不需要发送自身网格数据给其它条块。
所述的"边界递减条块"为每迭代计算一次边界减少一层的网格条块,"边界偏移条块"为每迭代计算一次边界偏移一层的网格条块,"边界不变条块"为迭代过程中边界不发生变化的网格条块。
6、以网格条块为单位执行偶数次迭代数据更新。执行偶数次迭代更新,更新顺序按照每个子空间内的条块顺序反序执行。当更新偶数次中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相邻的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新。
7、反复执行步骤5和步骤6,直至整个计算过程达到指定的收敛标准。
附图说明
图1是对迭代空间进行数据划分的示意图。
图2是条块生长过程的示意图。
图3是四维迭代空间的两类条块划分方法示意图。
图4是两类条块划分方法的条块依赖图。
图5是多个子区域的并行化的示意图。
具体实施方式
下面结合附图对本方法的具体实施方式作进一步详细的说明。
本发明提出的一种三维不可压缩管流的并行化方法,它面向分布式集群并具有自动调优的功能,对传统的线性系统进行替换,通过引入网格条块序的执行顺序,在不改变传统迭代方法性质的同时,提高了执行过程的数据局部性;通过对迭代空间进行区域分解和网格条块的重新排序,实现了并行化;通过循环交错条块技术和增加时间维对迭代空间进行时滞划分,减小了执行过程的通信和同步开销;在迭代的实际执行过程中,构造了并行技术的性能自动调优器,通过探测找到效率最优情况下的参数数值组合,并固定参数值,实现并行方法的运行效率最优。
沿时间轴方向对迭代空间进行划分:采用时滞技术,在迭代时间步上对每层迭代的子空间进行边界修正。定义有向图存放相邻网格块的数据依赖关系。若网格块与网格块边界相连且正向迭代时的更新顺序在之前,则,即的迭代更新依赖条块中的边界数据。对迭代空间划分后,形成网格条块。图2为子空间边界的修正过程,每一次迭代操作,在三个方向上分别偏移一层边界。
对网格条块进行重新排序:根据处理器个数,对所有的数据条块进行重新排序,以实现并行化执行。图3给出了四维迭代空间(空间维+时间维)迭代空间的两种交错划分,对应的网格条块依赖关系如图4所示。图3和图4的左半部分显示网格条块按条块顺序串行执行的迭代更新,从正向第1块tile(1)到第12块数据tile(12),然后从第12块tile(12)到第1块数据tile(1),长度为12,因此没有并行度。图3和图4的右半部分显示,通过增加边界条块进而改变网格条块的执行顺序,可以实现四个进程的并行执行迭代更新,并行度为4。四个进程在正向执行条块迭代更新过程中,分别执行所属第一个条块后执行同步操作以维护条块间的数据依赖关系。同样四个进程在反向执行条块更新过程中,分别在执行所属第一个条块后执行同步操作以维护条块间的数据依赖关系,显然,第二种划分的执行速度是第一种划分方式的四倍。通过改变条块网格条块间数据依赖关系,提高条块执行的并行度。
以网格条块为单位执行奇数次迭代数据更新。执行奇数次迭代更新,更新顺序按照重新排序之后各个子空间内的条块顺序。当更新奇数中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相邻的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新。空间条块的边界网格点必须发送给其它相邻子空间以维护数据依赖关系。"边界递减条条块"在执行更新后将自身边界网格数据发送给"边界递增条块"。"边界递增条块"必须在接受其它子空间条块发送的边界网格数据后才执行更新。"边界偏移条块"在执行前后需要接收数据和发送数据。其余的条块为"边界不变条块",其自身计算不需要其它处理器中网格条块的边界值,也不需要发送自身网格数据给其它条块。
所述的"边界递减条块"为每迭代计算一次边界减少一层的网格条块,"边界偏移条块"为每迭代计算一次边界偏移一层的网格条块,"边界不变条块"为迭代过程中边界不发生变化的网格条块。
以网格条块为单位执行偶数次迭代数据更新。执行偶数次迭代更新,更新顺序按照每个子空间内的条块顺序反序执行。当更新偶数次中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相应的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新。
本发明分开了一种三维不可压缩管流的并行化方法,它对传统的线性系统进行替换,通过将网格条块序引入串行方法的执行顺序,在不改变传统迭代方法性质的同时,提高了执行过程的数据局部性;通过对迭代空间进行区域分解和网格条块的重新排序,实现了并行化;通过循环交错条块技术和增加时间维对迭代空间进行时滞划分,减小了执行过程的通信和同步开销;在迭代的实际执行过程中,构造了并行技术的性能自动调优器,通过探测找到效率最优情况下的参数数值组合,并固定参数值,实现并行化方法的运行效率最优。
Claims (1)
1.一种三维不可压缩管流的并行化方法,其特征在于该方法包括以下步骤:
步骤1、迭代空间的网格条块划分:依据处理器数目P及处理器拓扑结构,利用区域分解法将空间计算区域划分成P个子空间;
步骤2、沿时间轴方向对迭代空间进行划分:采用时滞技术,在迭代时间步上对每层迭代的子空间进行边界修正;定义有向图 存放相邻网格块的数据依赖关系;若网格块与网格块边界相连且正向迭代时的更新顺序在之前,则,即的迭代更新依赖条块中的边界数据;对迭代空间划分后,形成网格条块;
步骤3、对网格条块进行重新排序:根据处理器个数,对所有的网格条块进行重新排序,实现并行化;
步骤5、以网格条块为单位执行奇数次迭代数据更新:执行奇数次迭代更新,更新顺序按照重新排序之后各个子空间内的条块顺序;当更新奇数中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相邻的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新;空间条块的边界网格点必须发送给其它相邻子空间以维护数据依赖关系;"边界递减条条块"在执行更新后将自身边界网格数据发送给"边界递增条块";"边界递增条块"必须在接受其它子空间条块发送的边界网格数据后才执行更新;"边界偏移条块"在执行前后需要接收数据和发送数据;其余的条块为"边界不变条块",其自身计算不需要其它处理器中网格条块的边界值,也不需要发送自身网格数据给其它条块;
所述的"边界递减条块"为每迭代计算一次边界减少一层的网格条块,"边界偏移条块"为每迭代计算一次边界偏移一层的网格条块,"边界不变条块"为迭代过程中边界不发生变化的网格条块;
步骤6、以网格条块为单位执行偶数次迭代数据更新;执行偶数次迭代更新,更新顺序按照每个子空间内的条块顺序反序执行;当更新偶数次中的"边界递减条块"和"边界偏移条块"后,需要将边界数据发送给相邻的"边界递增条块"和"边界偏移条块",而接收数据的条块必须在接收完数据后才进行迭代更新;
步骤7、反复执行步骤5和步骤6,直至整个计算过程达到指定的收敛标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104202297A CN102520917A (zh) | 2011-12-15 | 2011-12-15 | 一种三维不可压缩管流的并行化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104202297A CN102520917A (zh) | 2011-12-15 | 2011-12-15 | 一种三维不可压缩管流的并行化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102520917A true CN102520917A (zh) | 2012-06-27 |
Family
ID=46291860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104202297A Pending CN102520917A (zh) | 2011-12-15 | 2011-12-15 | 一种三维不可压缩管流的并行化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520917A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150290A (zh) * | 2013-02-28 | 2013-06-12 | 杭州电子科技大学 | 一种新型的三维不可压缩管流数值模拟方法 |
CN103984527A (zh) * | 2014-04-01 | 2014-08-13 | 杭州电子科技大学 | 优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法 |
CN112162957A (zh) * | 2020-10-13 | 2021-01-01 | 中国空气动力研究与发展中心计算空气动力研究所 | 多块结构网格数据压缩存储方法、解压缩方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009059045A2 (en) * | 2007-10-30 | 2009-05-07 | University Of Utah Research Foundation | Fast iterative method for processing hamilton-jacobi equations |
CN102096744A (zh) * | 2011-03-07 | 2011-06-15 | 杭州电子科技大学 | 一种非规则迭代并行化方法 |
CN102200962A (zh) * | 2011-07-25 | 2011-09-28 | 杭州电子科技大学 | 一种基于迭代空间条块的并行有限差分模版方法 |
-
2011
- 2011-12-15 CN CN2011104202297A patent/CN102520917A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009059045A2 (en) * | 2007-10-30 | 2009-05-07 | University Of Utah Research Foundation | Fast iterative method for processing hamilton-jacobi equations |
CN102096744A (zh) * | 2011-03-07 | 2011-06-15 | 杭州电子科技大学 | 一种非规则迭代并行化方法 |
CN102200962A (zh) * | 2011-07-25 | 2011-09-28 | 杭州电子科技大学 | 一种基于迭代空间条块的并行有限差分模版方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150290A (zh) * | 2013-02-28 | 2013-06-12 | 杭州电子科技大学 | 一种新型的三维不可压缩管流数值模拟方法 |
CN103984527A (zh) * | 2014-04-01 | 2014-08-13 | 杭州电子科技大学 | 优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法 |
CN112162957A (zh) * | 2020-10-13 | 2021-01-01 | 中国空气动力研究与发展中心计算空气动力研究所 | 多块结构网格数据压缩存储方法、解压缩方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
AU2019442319A1 (en) | Structural topology optimization method based on material-field reduction series expansion | |
CN102110079B (zh) | 一种基于mpi的分布式共轭梯度法的调优计算方法 | |
CN103281376A (zh) | 一种云环境下海量时序遥感影像的自动缓存构建方法 | |
CN105589951A (zh) | 一种海量遥感影像元数据分布式存储方法及并行查询方法 | |
CN104156267A (zh) | 任务分配方法、任务分配装置及片上网络 | |
Jin et al. | A parallel optimization method for stencil computation on the domain that is bigger than memory capacity of GPUs | |
CN103188346A (zh) | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 | |
CN102520917A (zh) | 一种三维不可压缩管流的并行化方法 | |
CN111079078A (zh) | 面向结构网格稀疏矩阵的下三角方程并行求解方法 | |
Nakajima | Optimization of serial and parallel communications for parallel geometric multigrid method | |
CN104572295A (zh) | 匹配于高性能计算机体系结构的结构网格数据管理方法 | |
CN101799846A (zh) | 一种地下水修复多目标优化方法 | |
Gondimalla et al. | Eureka: Efficient Tensor Cores for One-sided Unstructured Sparsity in DNN Inference | |
CN102521463A (zh) | 一种优化Cache行为提升油藏数值模拟效率的方法 | |
CN105874437B (zh) | 存储器管理方法和装置 | |
CN102200962A (zh) | 一种基于迭代空间条块的并行有限差分模版方法 | |
CN102223404A (zh) | 一种基于访问成本和传输时间的副本选择方法 | |
Han et al. | A global router on GPU architecture | |
CN105138607A (zh) | 一种基于混合粒度分布式内存网格索引的knn查询方法 | |
CN104598600B (zh) | 一种基于分布式内存的并行数字地形分析优化方法 | |
CN102509177B (zh) | 一种基于云平台的局部加权线性回归预测运算的方法 | |
CN103425787A (zh) | 一种渐进最优的三角网格重复顶点快速去除方法 | |
CN114021070A (zh) | 一种基于微架构处理器的深度卷积计算方法及系统 | |
Ampellio et al. | A hybrid ABC for expensive optimizations: CEC 2016 competition benchmark |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120627 |