[发明专利]一种应用于CFD高性能计算的数据跨进程传输方法有效
申请号: | 202110707260.2 | 申请日: | 2021-06-25 |
公开(公告)号: | CN113254241B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 陈坚强;郭永恒;张勇;赵钟;何先耀;肖中云 | 申请(专利权)人: | 中国空气动力研究与发展中心计算空气动力研究所 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/455;G06F30/28;G06F111/10;G06F113/08;G06F119/14 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 徐静 |
地址: | 621052 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 cfd 性能 计算 数据 跨进 传输 方法 | ||
本发明公开了一种应用于CFD高性能计算的数据跨进程传输方法,首先创建由本质为字符型向量容器的多个基本片段首尾顺次链接构成的动态容器,将CFD数值模拟的不同进程间需要进行通信的数据打包成统一的字符型数据;然后将MPI通信函数封装在动态容器中,进行MPI通信,将动态容器中储存的数据进行传输。其中,基本片段的标准长度上限不超过MPI缓冲区的大小,在进行传输时,可分片执行。本发明对缓冲区的利用率大幅提升的前提下又降低了数据的通信次数,同时,基本片段标准长度上限也有效避免了缓冲区溢出,对于大规模数据的传输,可以通过分片执行的模式,摆脱缓冲区大小的约束,避免通信堵塞的发生。
技术领域
本发明属于数据跨进程传输领域,具体涉及一种应用于CFD高性能计算的数据跨进程传输方法。
背景技术
计算流体力学(Computational Fluid Dynamics,简称为CFD),是利用计算机和数值方法对流体力学问题进行数值模拟和分析的新兴交叉学科,属于典型的计算、访存密集型的科学计算领域,强烈地依赖于高性能计算机的发展。目前,随着计算机硬件和并行计算技术的发展,为适应航空航天等领域大规模数值模拟的需求,高性能CFD软件的研制引起了日益广泛的关注。至今,以MPI、OpenMP等为代表的并行编程环境已在高性能CFD软件的研制中得到广泛应用。
目前,在国内外已经有了不少的针对基于网格离散的数值模拟领域的并行计算框架,例如OpenFOAM、Moose、Overture、JASMIN/JAUMIN/JCOGIN等。但由于结构网格拓扑的不同,以上并行编程框架基本都是单独针对结构网格或者非结构网格开发的,难以做到并行通信与网格无关。而在CFD工程应用中,非结构网格因其生成简单被广泛应用于复杂几何外形,但离散精度较低;结构网格因其具有较高的离散精度对于特殊问题有不可替代的角色,但生成复杂。如果对于结构、非结构网格分别采用不同的并行计算框架,那么同样的一套计算方法将难以适应于不同的网格类型,难以对不同应用领域实施灵活且精细地数值模拟。
随着高性能计算(High performance computing,缩写HPC)技术不断地更新迭代,其主流体系结构趋向于采用在分布式内存管理模式下的超级计算机集群(简称超算),如Titan、Summit、“神威·太湖之光”等。但在分布式内存管理模式下,伴随着CFD计算网格规模与基于区域分解计算的分区总数的增加以及多学科求解器的融合,跨进程传输的抽象数据总量和次数也相应增加,从而在并行通信方面产生更多的成本开销。在实际运用中,如重叠网格隐式并行算法,数据的跨进程传输量比网格块对接关系高出若干量级。此外,在传统CFD软件中,为降低整体的通信次数,经常将不同精度的数据转化成单一类型的数据(比如将int、float类型提升为double型数据),统一存储在一维数组中;当通信结束后,再执行数据类型的逆转化操作。显然,这种方法增加了通信数据的总长度,不仅对缓冲区造成了浪费,而且产生了额外的通信时间。同时,在给定的操作系统上,单个双精度浮点型数组可分配的连续内存是有限的,缓冲区的大小也是有限的,这就意味着单一数组打包技术对海量数据的运载能力是有限的。尽管MPI为用户提供了结构体数据打包传输接口,但是受内存对齐原理的约束,这种通讯方式仍然造成缓存浪费和通讯成本的增加。
发明内容
本发明的目的在于:针对上述存在的问题,提供一种应用于CFD高性能计算的数据跨进程传输方法,将不同进程间需要进行通信的数据利用动态容器进行打包,利用动态容器打包后的通信数据全部转换成了统一的字符型数据,动态容器中首尾链接的基本片段有长度上限,在进行数据传输时,可以摆脱缓冲区大小的约束,不会造成通信阻塞,且大大减少了通信次数。传输完成后只需要根据动态容器的全局指针和基本片段的局部指针,将不同类型的数据元素依次读出,并进行逆向解码,即可得到打包前的原数据类型的通信数据。
本发明目的通过下述技术方案来实现:一种应用于CFD高性能计算的数据跨进程传输方法,包括:
S1、数据打包:创建动态容器,将CFD数值模拟中不同进程间需要进行通信的各种类型的通信数据拷贝至所述动态容器中,完成数据打包;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国空气动力研究与发展中心计算空气动力研究所,未经中国空气动力研究与发展中心计算空气动力研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110707260.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:校准光接收模块上报光功率的方法、光接收模块和介质
- 下一篇:一种胎胚对中机构