(19)中华 人民共和国 国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202111456091.6
(22)申请日 2021.12.02
(65)同一申请的已公布的文献号
申请公布号 CN 113850032 A
(43)申请公布日 2021.12.28
(73)专利权人 中国空气动力研究与发展中心计
算空气动力研究所
地址 621000 四川省绵阳市涪城区二环路
南段6号
(72)发明人 李锦 江定武 王沛 耿湘人
陈坚强
(74)专利代理 机构 成都云纵知识产权代理事务
所(普通合伙) 51316
代理人 熊曦 陈婉鹃
(51)Int.Cl.
G06F 30/28(2020.01)
G06F 30/25(2020.01)
G06F 111/10(2020.01)
G06F 113/08(2020.01)G06F 119/14(2020.01)
(56)对比文件
US 10346198 B1,2019.07.09
CN 107444669 A,2017.12.08
CN 108170 530 A,2018.0 6.15
CN 103279391 A,2013.09.04
CN 111177979 A,2020.0 5.19
Rafael K eller Tesser等.Improvi ng the
performance of seis mic wave simulati ons
with dynamic l oad balanci ng. 《网也在线公
开: https://ieeexplore.ieee.org/stamp/
stamp.jsp?tp= &arnumber= 6787273》 .2014,第1-
8页.
李锦等.D SMC量子动理学化学反应模型的数
值模拟. 《航空学报》 .2019,第40卷(第4期),第
122176-1到122176-8页.
黎雷生等.千万亿次可扩 展可容错自由网格
数值模拟系统. 《计算机 研究与发展》 .2015,第52
卷(第4期),第823 -832页.
审查员 杨怡睿
(54)发明名称
一种数值模拟计算中的负载均衡方法
(57)摘要
本发明公开了一种数值模拟计算中的负载
均衡方法, 涉及稀薄气体动力学数值模拟领域,
本方法利用网格剖 分METIS串行库实现MPI并行
DSMC方法的基于模拟粒子数分布为权重的计算
网格重新剖分, 并根据剖分前后网格单元的全局
编号不变这一关系完成流场信息的整体映射, 最
终实现了DSMC方法数值模拟计算中的负载均衡 。
权利要求书2页 说明书6页 附图4页
CN 113850032 B
2022.02.08
CN 113850032 B
1.一种数值模拟计算中的负载均衡方法, 其特 征在于, 所述方法包括:
在根进程内读入网格文件, 对所述网格文件进行第一次剖分, 获得若干个第一分区网
格文件, 将若干个所述第一分区网格文件分配至各处 理器进程;
各处理器进程分别读入 对应的第一分区网格文件, 开始气体动力数值模拟并行计算;
判断流场内的气体流动是否达到定常, 当气体流动达到定常时, 统计各处理器进程内
网格单元的全局编号以及网格单 元内的模拟粒子数目;
在根进程内, 将网格单 元的全局编号与网格单 元内粒子数目进行匹配, 获得匹配结果;
在根进程内, 基于上述匹配结果以网格单元内模拟粒子数目为权重对所述网格文件进
行第二次剖分, 获得若干个第二分区网格文件;
统计各处 理器进程内的模拟粒子信息, 将所述模拟粒子信息存 入第一数组;
根据所述第 二次剖分的分区结果, 按照各处理器进程的编 号信息对所述第 一数组进行
排序, 获得排序结果;
基于所述排序结果, 将流场内的模拟粒子信息映射到对应的所述第二分区网格文件
中;
各处理器进程分别读入对应的第二分区网格文件, 进行气体动力数值模拟并行计算;
所述方法还包括将所述全局编号以及所述模拟粒子数目收集至主进程的相应数组中; 本方
法通过MPI全局函数MPI_Gatherv()将所述全局编号以及所述模拟粒子数目收集至主进程
的相应数组中; 所述方法具体包括:
统计各处理器进程中的网格单元数nCellInProc, 利用MPI中的MPI_Gather()函数将各
处理器进程的网格单 元数信息收集至根进程中的nCel lInProcArray数组中;
在根进程内计算相对位移数组displs;
基于所述网格单元数nCellInProc和所述数组displs, 调用所述MPI全局函数MPI_
Gatherv()将所述全局编号以及所述模拟粒子数目收集至主 进程的相应数组中;
所述模拟粒子信 息包括: 模拟粒子的所在单元编号、 模拟粒子所属的组份编号、 模拟粒
子的空间三维坐标、 模拟粒子在三维方向的速度大小、 模拟粒子转动能和模拟粒子振动能;
本方法还 包括:
自定义获得模拟粒子信息的第一数据结构;
基于所述第一数据结构, 获得MPI数据结构;
基于所述MPI数据结构, 基于MPI函数将流场内的模拟粒子信息映射到对应的所述第二
分区网格文件中; 其中, 所述第一数据结构为:
procID, zo neID, cel lID, specieID, XYZ(3), UVW(3), erot, evib;
其中, procID为模拟粒子发往的进程编号, zoneID为模拟粒子所在网格分区编号,
cellID为模拟粒子所在网格单元编号, specieID为模拟粒子组分编号, XYZ(3)为模拟粒子
的三维空间坐标, UVW(3)为模拟粒子的速度三分量, er ot为模拟粒子的转动能, evib为模拟
粒子的振动能。
2.根据权利要求1所述的数值模拟计算中的负载均衡方法, 其特征在于, 本方法中网格
单元的全局编号与网格单元内粒子数目的匹配方式为: 基于网格单元的全局编号对网格单
元内粒子数信息进行排序匹配。
3.根据权利要求1所述的数值模拟计算中的负载均衡方法, 其特征在于, 本方法采用网权 利 要 求 书 1/2 页
2
CN 113850032 B
2格剖分工具M ETIS对所述网格文件进行剖分。
4.根据权利要求1所述的数值模拟计算中的负载均衡方法, 其特征在于, 本方法按照各
处理器进程编号由小到大的顺序对所述第一数组进行排序。
5.根据权利要求1所述的数值模拟计算中的负载均衡方法, 其特征在于, 所述基于所述
第一数据结构, 获得MPI数据结构, 具体包括:
定义blocklengths(0) = 4, blocklengths(1) = 8, oldtypes(0) = MPI_INTEGER,
oldtypes(1) = MPI_DOUBLE_PRECISION, 其 中, blocklen gths(0)为第一个数据 块的长度,
blocklengths(1)为第二个数据块的长度, oldtypes(0)为第一个数据块的数据类型,
oldtypes(1)为第二个数据块的数据类型;
调用MPI_GET_AD DRESS函数计算出偏移量 offsets(0)和of fsets(1)
调用MPI_TYPE_CREATE_STRUCT函数和MPI_TYPE_COMMIT函数完成所述第一数据结构的
定义和注 册。权 利 要 求 书 2/2 页
3
CN 113850032 B
3
专利 一种数值模拟计算中的负载均衡方法
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 21:28:05上传分享