CN104573151A - 一种壁面网格点数据获取的循环通信方法 - Google Patents
一种壁面网格点数据获取的循环通信方法 Download PDFInfo
- Publication number
- CN104573151A CN104573151A CN201310498659.XA CN201310498659A CN104573151A CN 104573151 A CN104573151 A CN 104573151A CN 201310498659 A CN201310498659 A CN 201310498659A CN 104573151 A CN104573151 A CN 104573151A
- Authority
- CN
- China
- Prior art keywords
- wall
- flow field
- net point
- subregion
- distance
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于计算机壁面网格点数据处理技术领域,具体涉及一种提高CFD湍流模拟壁面距离并行计算中壁面网格点数据获取通信效率的循环通信方法。包括以下步骤:(1)确定壁面距离计算直接法的原理。(2)确定基于直接法的壁面距离计算流程具体步骤:外循环遍历流场网格点,内循环遍历所有壁面网格点。(3)具体实施:设定流场的分区数、流场网格点集合、壁面网格点集合、待求解流场网格点壁面距离集合;各进程载入流场网格点信息,并构建各分区流场网格点集合;各进程载入壁面网格点信息,并构建各分区壁面网格点集合;各进程构建各分区流场网格点壁面距离集合;各进程并行计算其处理分区流场网格与所有分区壁面网格点集合中网格点的壁面距离。
Description
技术领域
本发明属于计算机壁面网格点数据处理技术领域,具体涉及一种提高CFD湍流模拟壁面距离并行计算中壁面网格点数据获取通信效率的循环通信方法。
背景技术
CFD(计算流体力学)是通过在计算机上数值求解流体与气体动力学基本方程,获取各种条件下流动的数据和作用在绕流物体上的力、力矩、流动图像和热量的学科。CFD中壁面距离反映着湍流的近壁特性,一直都在Reynolds平均、大涡模拟的湍流模化中起着非常重要的作用。
流场网格点的壁面距离指流场网格点到壁面所有网格点的距离的最小值,如图1所示。典型的网格包含壁面边界和外边界,壁面边界和外边界之间包含的区域为流场。壁面边界被离散成壁面网格点,流场被离散成流场网格点。壁面距离计算时需要用到网格文件和边界文件中的数据。流场网格点信息由网格文件确定,壁面网格点信息和外边界由边界文件确定。
网格分区如图2所示,即通过分区边界把整个网格划分成若干个分区。壁面距离并行计算基于网格分区并行,指把整个网格区域划分成若干个独立的网格分区,各网格分区内流场网格点的壁面距离计算同时进行。
分区并行一般基于消息传递并行编程模型,即一个MPI进程对应一个分区,假定共有M个分区,其对应关系如图3所示,分区内的壁面网格点数据用Walli(1≤i≤M)表示。由于壁面网格点被划分到不同的分区中,所以在进行壁面距离并行计算时,负责本分区的MPI进程需要获取其它分区所包含的壁面网格点数据。壁面距离并行计算采用循环进行的方式,即所有进程依次对第i(1≤i≤M)个分区中的壁面网格点,计算/更新其分区内流场网格点的壁面距离。
壁面距离并行计算能够显著缩短壁面距离的计算时间,步骤6中壁面网格点数据获取时通信量与通信次数、每次通信的壁面网格数据量直接相关,可能会产生通信冲突。因为在同一时刻,当所有进程都访问第i个分区时,第i个进程必须向非本进程号的其它所有进程发送壁面网格点数据,其它进程接收网格点数据。此时,通信集中在第i个进程处,从而影响通信效率。获取wall1、wall2中网格点信息的通信如图2所示。当分区数目多(大于103量级)且各分区壁面网格点数据量大(大于104量级)时,通信冲突会非常严重。
因此,亟需研制一种壁面网格点数据循环获取方法,通过循环通信方式减少壁面距离并行计算壁面网格点获取时产生的通信冲突。
发明内容
本发明要解决的技术问题是为提高CFD壁面距离并行计算获取壁面网格点数据的通信效率,发明一种壁面网格点数据循环获取方法。
为了实现这一目的,本发明采取的技术方案是:
一种壁面网格点数据获取的循环通信方法,包括以下步骤:
(1)确定壁面距离计算直接法的原理:
构建流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};
其中N、M分别为流场网格点和壁面网格点的个数;U、W为含N元素的三维实型数组,D为含N元素的一维实型数组;
任意两点p1(x1,y1,z1),p2(x2,y2,z2)间的距离计算公式如下所示:
当流场为二维平面时,取z1=z2=0,公式(1)仍然成立。
(2)确定基于直接法的壁面距离计算流程具体步骤:
基于直接法的壁面距离计算流程包括两层循环,外循环遍历流场网格点,内循环遍历所有壁面网格点,描述如下:
步骤1:用i表示流场网格点ui(i=1,2,...,N)的遍历变量,i=0;
步骤2:i=i+1;
步骤3:用j表示壁面网格点wj(j=1,2,...,M)遍历变量,j=0;
步骤4:j=j+1;
步骤5:判断j是否为1,是则转步骤6,否则转步骤7;
步骤6:根据公式1计算ui和w1之间的距离,并置入di;di表示第i个流场网格点到壁面之间的距离
步骤7:根据公式1计算ui和wj之间的距离s;
步骤8:判断di是否大于s,是则转入步骤9;否则转步骤10
步骤9:置di为s;
步骤10:判断j是否≥M,是则转步骤11,否则转步骤4;
步骤11:判断i是否≥N,是则转步骤12,否则转步骤2;
步骤12:结束。
(3)具体实施壁面网格点数据获取的循环通信方法:
(3.1)假设流场的分区数为F,流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};进程与分区呈一一对应关系,一个进程处理一个分区;
(3.2)各进程载入流场网格点信息,并构建各分区流场网格点集合U1,U2,...,UF;由于每个进程负责计算一个网格分区内流场网格点的壁面距离,则分别构建各分区的流场网格点集合U1,U2,...,UF;U1,U2,...,UF满足:
Ui∩Uj=空集 (2)
U1∪U2∪...∪UF=U (3)
其中,1≤i,j≤F且i≠j;任意两个分区流场网格点集合没有相同的网格点,各分区流场网格点集合的并集为流场网格点集合;
(3.3)各进程载入壁面网格点信息,并构建各分区壁面网格点集合W1,W2,...,WF;分别构建各分区的壁面网格点集合W1,W2,...,WF;W1,W2,...,WF满足:
Wi∩Wj=空集 (4)
W1∪W2∪...∪WF=W (5)
其中,1≤i,j≤F且i≠j;
(3.4)各进程构建各分区流场网格点壁面距离集合D1,D2,...,DF;
(3.5)各进程并行计算其处理分区流场网格与所有分区壁面网格点集合中网格点的壁面距离;第p个进程的计算步骤如下所示:
步骤1:设置a=0,a表示F个分区中递增的一个变量;
步骤2:a=a+1;
步骤3:用k表示(p+a-1)对F整除后的余数;
步骤4:获取第k个分区的壁面网格点数据;
步骤5:根据(2)确定基于直接法的壁面距离计算流程具体步骤来计算第p个分区中流场网格点和步骤4中获取的第k个分区中壁面网格点之间的距离;
步骤6:判断a是否大于等于F,成立转步骤7,不成立转步骤2;
步骤7:结束。
本发明与原有的串行方法相比,提高了CFD壁面距离并行计算中壁面网格点数据通信的通信效率,并且减少了壁面距离并行计算壁面网格点获取时产生的通信冲突。
附图说明
图1是壁面距离并行计算流程图;
图2是获取壁面网格点信息时通信示意图;
图3是进程与分区对应关系示意图。
具体实施方式
下面结合附图对本发明技术方案进行详细说明如下。
本发明一种壁面网格点数据获取的循环通信方法,包括以下步骤:
(1)确定壁面距离计算直接法的原理:
构建流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};
其中N、M分别为流场网格点和壁面网格点的个数;U、W为含N元素的三维实型数组,D为含N元素的一维实型数组;
任意两点p1(x1,y1,z1),p2(x2,y2,z2)间的距离计算公式如下所示:
当流场为二维平面时,取z1=z2=0,公式(1)仍然成立。
(2)确定基于直接法的壁面距离计算流程具体步骤:
基于直接法的壁面距离计算流程包括两层循环,外循环遍历流场网格点,内循环遍历所有壁面网格点,描述如下:
步骤1:用i表示流场网格点ui(i=1,2,...,N)的遍历变量,i=0;
步骤2:i=i+1;
步骤3:用j表示壁面网格点wj(j=1,2,...,M)遍历变量,j=0;
步骤4:j=j+1;
步骤5:判断j是否为1,是则转步骤6,否则转步骤7;
步骤6:根据公式1计算ui和w1之间的距离,并置入di;di表示第i个流场网格点到壁面之间的距离
步骤7:根据公式1计算ui和wj之间的距离s;
步骤8:判断di是否大于s,是则转入步骤9;否则转步骤10
步骤9:置di为s;
步骤10:判断j是否≥M,是则转步骤11,否则转步骤4;
步骤11:判断i是否≥N,是则转步骤12,否则转步骤2;
步骤12:结束。
(3)具体实施壁面网格点数据获取的循环通信方法:
(3.1)假设流场的分区数为F,流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};如图3所示,进程与分区呈一一对应关系,一个进程处理一个分区;
(3.2)各进程载入流场网格点信息,并构建各分区流场网格点集合U1,U2,...,UF;由于每个进程负责计算一个网格分区内流场网格点的壁面距离,则分别构建各分区的流场网格点集合U1,U2,...,UF;U1,U2,...,UF满足:
Ui∩Uj=空集 (2)
U1∪U2∪...∪UF=U (3)
其中,1≤i,j≤F且i≠j;任意两个分区流场网格点集合没有相同的网格点,各分区流场网格点集合的并集为流场网格点集合;
(3.3)各进程载入壁面网格点信息,并构建各分区壁面网格点集合W1,W2,...,WF;分别构建各分区的壁面网格点集合W1,W2,...,WF;W1,W2,...,WF满足:
Wi∩Wj=空集 (4)
W1∪W2∪...∪WF=W (5)
其中,1≤i,j≤F且i≠j;
(3.4)各进程构建各分区流场网格点壁面距离集合D1,D2,...,DF;
(3.5)各进程并行计算其处理分区流场网格与所有分区壁面网格点集合中网格点的壁面距离;第p个进程的计算步骤如下所示:
步骤1:设置a=0,a表示F个分区中递增的一个变量;
步骤2:a=a+1;
步骤3:用k表示(p+a-1)对F整除后的余数;
步骤4:获取第k个分区的壁面网格点数据;
步骤5:根据(2)确定基于直接法的壁面距离计算流程具体步骤来计算第p个分区中流场网格点和步骤4中获取的第k个分区中壁面网格点之间的距离;
步骤6:判断a是否大于等于F,成立转步骤7,不成立转步骤2;
步骤7:结束。
在具体实施方式中,采用该基于直接法的壁面距离并行计算方法的CFD计算软件的测试平台为某银河集群平台,操作系统为Kylin Server3.1,处理器为Intel Xeon E5540,编程器为Intel Fortran11.1(-O3优化),并行通信环境为MPICH21.32rc。测试用例分别为计算网格规模为800万的44分区对接网格A,和计算网格规模为367万的21分区嵌套网格B。网格A、B的壁面分别为68万和15.8万。进行壁面距离并行计算时,每个分区对应一个MPI进程。并行加速效果如表1所示。从表1可见,采用本方法的并行化加速效果较为明显。
表1串并行壁面计算效果对比
Claims (1)
1.一种壁面网格点数据获取的循环通信方法,其特征在于,包括以下步骤:
(1)确定壁面距离计算直接法的原理:
构建流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};
其中N、M分别为流场网格点和壁面网格点的个数;U、W为含N元素的三维实型数组,D为含N元素的一维实型数组;
任意两点p1(x1,y1,z1),p2(x2,y2,z2)间的距离计算公式如下所示:
当流场为二维平面时,取z1=z2=0,公式(1)仍然成立;
(2)确定基于直接法的壁面距离计算流程具体步骤:
基于直接法的壁面距离计算流程包括两层循环,外循环遍历流场网格点,内循环遍历所有壁面网格点,描述如下:
步骤1:用i表示流场网格点ui(i=1,2,...,N)的遍历变量,i=0;
步骤2:i=i+1;
步骤3:用j表示壁面网格点wj(j=1,2,...,M)遍历变量,j=0;
步骤4:j=j+1;
步骤5:判断j是否为1,是则转步骤6,否则转步骤7;
步骤6:根据公式1计算ui和w1之间的距离,并置入di;di表示第i个流场网格点到壁面之间的距离
步骤7:根据公式1计算ui和wj之间的距离s;
步骤8:判断di是否大于s,是则转入步骤9;否则转步骤10
步骤9:置di为s;
步骤10:判断j是否≥M,是则转步骤11,否则转步骤4;
步骤11:判断i是否≥N,是则转步骤12,否则转步骤2;
步骤12:结束;
(3)具体实施壁面网格点数据获取的循环通信方法:
(3.1)假设流场的分区数为F,流场网格点集合U={u1,u2,...,uN},壁面网格点集合W={w1,w2,...,wM},待求解流场网格点壁面距离集合D={d1,d2,...,dN};进程与分区呈一一对应关系,一个进程处理一个分区;
(3.2)各进程载入流场网格点信息,并构建各分区流场网格点集合U1,U2,...,UF;由于每个进程负责计算一个网格分区内流场网格点的壁面距离,则分别构建各分区的流场网格点集合U1,U2,...,UF;U1,U2,...,UF满足:
Ui∩Uj=空集 (2)
U1∪U2∪...∪UF=U (3)
其中,1≤i,j≤F且i≠j;任意两个分区流场网格点集合没有相同的网格点,各分区流场网格点集合的并集为流场网格点集合;
(3.3)各进程载入壁面网格点信息,并构建各分区壁面网格点集合W1,W2,...,WF;分别构建各分区的壁面网格点集合W1,W2,...,WF;W1,W2,...,WF满足:
Wi∩Wj=空集 (4)
W1∪W2∪...∪WF=W (5)
其中,1≤i,j≤F且i≠j;
(3.4)各进程构建各分区流场网格点壁面距离集合D1,D2,...,DF;
(3.5)各进程并行计算其处理分区流场网格与所有分区壁面网格点集合中网格点的壁面距离;第p个进程的计算步骤如下所示:
步骤1:设置a=0,a表示F个分区中递增的一个变量;
步骤2:a=a+1;
步骤3:用k表示(p+a-1)对F整除后的余数;
步骤4:获取第k个分区的壁面网格点数据;
步骤5:根据(2)确定基于直接法的壁面距离计算流程具体步骤来计算第p个分区中流场网格点和步骤4中获取的第k个分区中壁面网格点之间的距离;
步骤6:判断a是否大于等于F,成立转步骤7,不成立转步骤2;
步骤7:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498659.XA CN104573151A (zh) | 2013-10-22 | 2013-10-22 | 一种壁面网格点数据获取的循环通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498659.XA CN104573151A (zh) | 2013-10-22 | 2013-10-22 | 一种壁面网格点数据获取的循环通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104573151A true CN104573151A (zh) | 2015-04-29 |
Family
ID=53089211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310498659.XA Pending CN104573151A (zh) | 2013-10-22 | 2013-10-22 | 一种壁面网格点数据获取的循环通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104573151A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613126A (zh) * | 2020-12-29 | 2021-04-06 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN114119929A (zh) * | 2022-01-26 | 2022-03-01 | 南京航空航天大学 | 飞行器流场分析中的物面距阵面推进并行计算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519553B1 (en) * | 1998-05-14 | 2003-02-11 | Sandia Corporation | Multiprocessor computer overset grid method and apparatus |
CN103345580A (zh) * | 2013-07-02 | 2013-10-09 | 上海大学 | 基于格子Boltzmann方法的并行CFD方法 |
-
2013
- 2013-10-22 CN CN201310498659.XA patent/CN104573151A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519553B1 (en) * | 1998-05-14 | 2003-02-11 | Sandia Corporation | Multiprocessor computer overset grid method and apparatus |
CN103345580A (zh) * | 2013-07-02 | 2013-10-09 | 上海大学 | 基于格子Boltzmann方法的并行CFD方法 |
Non-Patent Citations (3)
Title |
---|
李广宁等: "一种高效的壁面距离计算方法", 《航空工程进展》 * |
王运涛等: "基于结构网格的大规模并行计算研究", 《计算机工程与科学》 * |
赵慧勇等: "一种新的壁面距离计算方法—循环盒子法", 《计算物理》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613126A (zh) * | 2020-12-29 | 2021-04-06 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN112613126B (zh) * | 2020-12-29 | 2023-07-28 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN114119929A (zh) * | 2022-01-26 | 2022-03-01 | 南京航空航天大学 | 飞行器流场分析中的物面距阵面推进并行计算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9038088B2 (en) | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases | |
Towara et al. | MPI-parallel discrete adjoint OpenFOAM | |
CN104933225B (zh) | 实现计算流体力学大规模实时模拟的方法 | |
CN102902514B (zh) | 半隐式类粒子法的大规模并行处理方法 | |
CN103279391A (zh) | 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法 | |
Rehbach et al. | Comparison of parallel surrogate-assisted optimization approaches | |
CN114662425A (zh) | 一种水轮机启停工况流场仿真预测方法及系统 | |
CN103064819A (zh) | 一种利用MIC快速实现格子Boltzmann并行加速的方法 | |
Bachmann et al. | Parallel multiple-shooting and collocation optimization with openmodelica | |
CN102393826A (zh) | 一种基于多核并行处理的柔性场景连续碰撞检测方法 | |
CN104615835B (zh) | 一种发动机中冷器分析方法 | |
CN114676522B (zh) | 融合gan和迁移学习的气动形状优化设计方法及系统及设备 | |
CN104573151A (zh) | 一种壁面网格点数据获取的循环通信方法 | |
Chen et al. | Parallel calculation methods for molecular weight distribution of batch free radical polymerization | |
CN104408019A (zh) | 一种基于mic平台实现gmres算法并行加速的方法 | |
CN106096183B (zh) | 一种基于特征线法的多重并行方法 | |
CN102222274A (zh) | 基于调度编码的免疫克隆选择作业车间调度方法 | |
CN102750414B (zh) | 一种验证离心泵网格质量与计算精度关系的方法 | |
CN110187975B (zh) | 一种多核处理器资源分配计算方法、存储介质及终端设备 | |
Jiayi et al. | Numerical calculation method of steam-liquid separation efficiency of the corrugated plate dryer based on the discrete phase model and the Euler water film model: A short communication | |
Zimmerman et al. | High-order spectral difference: verification and acceleration using GPU computing | |
CN104156268B (zh) | 一种GPU上MapReduce的负载分配和线程结构优化方法 | |
Wyrzykowski et al. | Using blue gene/P and GPUs to accelerate computations in the EULAG model | |
CN114595612A (zh) | 基于实体单元积分路径的受力构件的配筋计算方法及系统 | |
CN103793745B (zh) | 一种分布式粒子群优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |