提交 dbbfac97 编写于 作者: 唐门教主's avatar 唐门教主

Update 第四章 开源行业发展现状.md

上级 3988f28c
...@@ -241,4 +241,51 @@ T层和OT层的开源空间都很广阔,但是由于两者的应用场景和 ...@@ -241,4 +241,51 @@ T层和OT层的开源空间都很广阔,但是由于两者的应用场景和
### 开源在风洞等场景的应用 ### 开源在风洞等场景的应用
作者:李光杰,红山开源平台技术组负责人 > 作者:李光杰,红山开源平台技术组负责人
计算流体力学(CFD,Computational Fluid Dynamics)发展对开源生态建设有重要影响。CDF兴起于20世纪60年代,是流体力学与计算机科学相互融合的新兴交叉学科,主要通过计算机和数值方法来求解流体力学的控制方程,对流体力学问题进行模拟和分析。90年代初期,随着计算机性能的优化提升,加速促进了CFD仿真软件在航天设计、化工处理、半导体等重要工业领域应用。当前,以Fluent(美国ANSYS企业主导研发)为代表的商用CFD仿真软件已得到广泛应用,在国际市场的占有率高达70%。为打破商用CFD仿真软件的垄断,由英国帝国理工大学Gosman团队编写,面向公众发行的开源流体学仿真软件OpenFoam应运而生,为用户提供了可扩展的数值模拟方法和求解器,进一步丰富了软件业态。
而目前,在CFD仿真软件的商业化和开源应用方面,我国头部研发力量薄弱,对外依附性较强。为提升本土工业应用软件的精确度、稳定性和计算效率,国产CFD软件选择拥抱开源,通过高效的在线协同机制,汇聚广大使用者和开发者群体,利用信息化创作环境和大规模在线协同开发工具实现技术协同攻关,共同打造国产自主CFD软件生态。 
#### (一)风雷软件
风雷开源项目即风雷软件是中国空气动力研究与发展中心(CARDC)研发的面向流体工程的开源混合CFD平台。平台的建立遵循面向对象的设计理念,采用C++语言编程。风雷软件为了适应结构网格、非结构网格、混合网格、重叠网格等不同网格的计算,设计了具有良好通用性、可扩展性的体系结构和数据结构,实现了在同一个软件平台上,同时兼容结构求解器和非结构求解器。两种求解器可独立运行,也能耦合计算,即在流场中同时含有结构网格和非结构网格的情况下,在结构网格上调用结构求解器,在非结构网格上调用非结构求解器。风雷软件作为目前全球唯一同时兼容结构/非结构的开源平台,其计算范围覆盖低速、亚跨声速和高超声速。开发过程中,以现代软件工程方法为指导,结合CFD行业特点,设计了面向下一代的软件体系结构。目前,软件具备的主要功能点如下图所示。同时,风雷软件也提供常用前、后置软件接口,如Gridgen、Pointwise、ICEM-CFD、FieldView、Tecplot等。
![](https://img-blog.csdnimg.cn/b45ad0af7a88461a8e296bc3e600113e.png#pic_center)
风雷软件作为CFD领域国产开源生态建设的排头兵,积极参与技术交流与产学研合作。2021年10月,风雷软件在第九届“英特尔”杯全国并行应用挑战赛中,凭借《百亿级网格飞行器流动模式》作品夺得总决赛应用组冠军,团队通过采用MPI并行编程和OpenMP并行编程,首次突破了百亿级网格,以及英特尔30万核的规模限制,为快速飞行器设计奠定了基础。2022年6月,风雷软件承担江苏省科技厅重点研发计划《民用装备数值模拟求解框架研发与样本数据库构建关键技术研发》项目,为国产民用工业装备设计与研发流程优化贡献属于CFD领域的力量。南京航空航天大学韩省思课题组基于风雷软件发展了自适应RANS/LES湍流模拟方法,构造了适用于全尺度的大涡模式,为工程问题的湍流模拟应用提供了新思路。北京航空航天大学徐晶磊课题组发展了仅依赖湍动能输运方程的KDO (Kinetic Dependent Only)湍流模型相对于传统湍流模式更适用于高超声速高温非平衡流动,测试发现计算精度高于湍流传统模式。该模型可鲁棒计算一体化计算转捩/湍流、热化学反应流动,可进行大规模并行计算。中石化安全研究院基于风雷软件建立模拟污染物气体泄漏扩散的数值方法,对多种单组分、多组分混合气体扩散过程进行数值模拟研究。最终,形成一套研究污染物气体泄漏、扩散过程数值模拟和风险评估方法,对厂房、厂区等环境条件下气体泄漏、扩散过程的应急处置以及防护方案提供依据。中山大学国家超级计算广州中心张曦课题组基于风雷软件发展了MPI-CUDA异构并行框架,使得风雷GPU程序可以跨节点运行在多GPU上,为风雷程序在通用GPU上的大规模异构计算提供了贡献了一种解决方案。
![](RANS_LES自适应湍流模拟.gif)
RANS/LES自适应湍流模拟
![](https://img-blog.csdnimg.cn/1628b09393da4c0bba066dbe4f7cdf01.png#pic_center)
GPU并行计算
2016年4月,风雷软件面向全国免费发布,迄今为止,已有超过100家单位、1000人次申请下载使用;2020年7月,风雷软件面向“NNW项目”参研单位开源,行业内代码开源;2020年12月中旬,风雷软件正式面向全国用户开源发布。截止目前,风雷软件进行了5次版本更新,累计开源新功能37项,红山开源社区fork总数达633次,注册用户970余人,代码提交360次,收集国内用户意见反馈200余条,对其中符合风雷软件发展客观需要,且呼声较高的功能进行了技术突破与功能更新。在国内开源生态方面,2021年7月28日至30日,第2期国家数值风洞风雷开源软件暑期研讨班在线举办。会议采用线上直播方式,共685人(账号数)参会。2022年7月25日至29日,为期一周的国家数值风洞(NNW)风雷软件暑期研讨班(第3期)在四川绵阳成功举办。本次研讨班采用线上线下相结合的方式,清华大学、北京航空航天大学、北京理工大学、西安交通大学、西北工业大学、华中科技大学、国防科技大学、中山大学、沈阳航空航天大学、西北核技术研究院等24家单位,共计98人参与现场研讨,500余人(账号数)参与线上讨论。2022年7月,由中国空气动力研究与发展中心计算空气动力研究所组织的“国家数值风洞自主软件基础理论与工程应用精品系列课程进校园”活动盛大启幕,活动前两站为四川大学、厦门大学。风雷软件在两所高校开展了为期三天的培训课程,共计120名学员选修参与。2022年10月,风雷开源项目基于红山平台发布创客任务“悬赏”项目功能、性能开发问题解决方案,进一步推进CFD良性开源生态建设,激发人才自主创新意识。
风雷开源项目成立后,虽然构建了较为完整的社区生态,取得了一系列研究与应用成果,但仍面临切乎自身发展的问题与挑战,如:开发者、协作者知识产权保护措施不完备,部分用户自主创新意识淡薄,软件市场化可持续发展路线待探索等。因此,风雷开源项目将不断推进以下研究工作,包括:
1. 坚持开源可控,自主创新路线不动摇,加强人工智能、云计算等新型CFD应用领域布局;
2. 完善知识产权保护体系,尽可能减少被侵权的风险;
3. 加强开源创新模式,充分激发社区活力,提升协作者自主创新源动力;
4. 探索开源软件可持续发展路线,增加项目发展后劲。
#### (二)IDRLNet
物理场的快速仿真与精确反演是飞行器设计和运行监测中面临的两个重要课题。在设计过程中,可以通过计算流体力学(CFD)实现物理场数值仿真。但是,CFD数值仿真往往需要消耗大量时间,在计算成本和准确性方面仍然面临许多挑战。在飞行器运行过程中,性能监测涉及物理场反演,为满足实时性需求,数据驱动方法被引入其中。然而受限于传感器数量和精度,单纯数据驱动的方式并不能满足物理场的重建需求。面对这些困难,内嵌物理知识神经网络 (Physics-Informed Neural Network,PINN)作为一种新兴深度学习技术,逐渐被应用到CFD领域中。PINN保持了神经网络对数据高效利用特性的同时,在神经网络中内嵌物理知识,从而实现数据与物理知识混合驱动。为解决飞行器设计优化过程中物理场快速仿真问题和运行监测阶段物理场精确反演问题,国防科技创新研究院智能设计与鲁棒学习团队推出了基于PINN的微分方程智能求解框架IDRLnet。
IDRLnet是一款以飞行器设计优化任务为应用背景、基于PyTorch开发的开源框架。IDRLnet主要包括几何生成、数据处理、神经网络构建和偏微分方程求解四大模块。该框架提供了二维与三维的基本几何对象,并支持几何对象之间的集合运算。PINN方法的基本思路是对采样配点上的数据和方程残差进行拟合,因此,面向该领域学术研究需求,几何生成模块提供了内部采样方法及其对应符号距离场(SDF)、边界采样方法及其对应法向量。数据源包括采样得到的数据节点和外部数据节点,可用于代理模型构建与逆问题求解。该框架内置了多种神经网络架构与常见微分方程,便于多种方法比较研究。处理复杂物理场时可能涉及较多对象,物理方程与采样点数据之间的耦合较为复杂。为了应对潜在的复杂关联问题,该框架在架构设计上解耦了数据源、物理方程、神经网络之间的依赖,各个计算对象如微分方程和神经网络相关的计算节点可以进行单独定义。最后,基于给定数据源,自动获取需要的依赖结点;构建计算图,利用拓扑排序构造计算流水线;整合多个流水线,得到最终损失函数,进而利用反向传播结合梯度优化方法完成训练。考虑到PINN本身仍没有发展成熟,更多高效算法亟待开发。因此,该框架提供了回调机制支持用户自定义算法,使得PINN新方法也容易集成到框架中。
IDRLnet包含了大量典型测试案例。首先,面向飞行器设计参数优化问题,IDRLnet在不依赖外部数值仿真提供训练数据的条件下,能够实现物理场对设计变量的实时响应,大幅压缩“设计参数-数值仿真”迭代循环的周期。其次,对于含有异常传感数据的物理场重建问题,IDRLnet提供多种鲁棒优化方法可以对物理场参数进行反演识别。为进一步提升效率与精度,IDRLnet提供了自适应采样方法,动态改变各区域采样权重。同时,该框架还支持简单偏微分方程的变分形式求解。IDRLnet于2021年7月在红山开源平台发布0.1.0版本,并获得2022年度开源项目贡献奖。作为国内首款基于内嵌物理知识神经网络的自主开源框架,IDRLnet助力内嵌物理知识神经网络领域的学术研究和应用落地。IDRLnet已应用于卫星仓板热分析与飞行器流场感知等问题中,相关成果已获得成果转化。PINN创始人Raissi教授在相关课程上推荐了IDRLnet求解库,该框架在国内外已具有一定影响力。
目前PINN求解效率还有待提高,其网络架构也存在一定局限性。IDRLnet计划提升CPU/GPU并行化的高性能计算能力,使其适应并行算法;支持更多新型神经网络架构与物理机器学习模型;融合传统数值求解器;引入自适应的超参数选择方法,提高模型收敛性;结合设计优化,支持多种优化器。同时,进一步整合更多科学工程领域的算例,为工程应用奠定基础。随着内嵌物理知识神经网络相关研究不断深入,团队也在开源后对IDRLnet的功能和性能进行了不断完善和改进,预计于2023年中发布IDRLnet0.2.0版本。
#### (三)OpenMatrix
MATLAB是美国MathWorks公司出品的商业矩阵计算软件,软件具有编程语言简洁易懂、计算功能强大、丰富的领域工具箱等优势,已成为快速实现算法验证和生成原型软件的有效编程工具,广泛用于科学计算、可视化以及交互式程序设计等设计建模和数值分析领域。自2020年起,我国多家单位被列入美国政府的进出口管制名单,禁止使用MATLAB服务。为实现大型矩阵计算软件自主可控,解决大量基于MATLAB编程语言的软件原型遗产代码问题,同时缓解国产软件性能不足问题,迫切需要研发一款面向数值计算的高性能矩阵计算软件。
国防科大龚春叶团队研发的OpenMatrix矩阵计算软件将对标商用MATLAB软件,旨在开发构建一款开源的适用于数值计算和科学工程计算的高级语言交互式环境,为计算流体力学、电磁学、气候气象等数值计算领域的设计建模与专业分析提供数值计算服务。软件的定位一方面是解决禁运问题,满足遗产MATLAB代码快速适配需求,另一方面是利用高性能计算机实现并行优化,充分发挥计算性能。此外,OpenMatrix矩阵计算软件着重解决MATLAB并行计算能力弱、性能效率低等问题,针对重要领域开发并行求解工具箱,在不修改源程序的前提下实现性能跃升,利用并行算力优势弥补软件水平差距,弥补中美软件水平差距。
当前OpenMatrix矩阵计算软件版本已具备提供高级语言解释器,实现了语言的前端解释功能,支持将MATLAB语言转换为中间代码,支持高级编程语言和交互式计算;支持面向高级语言的数据和通用函数兼容技术,提供统一编程接口,能够用简易编码方式支持各类问题的高效试算,减轻使用者的编程负担和应用性能优化难度;已实现不包括第三方工具箱函数的大部分通用函数覆盖,包括:初等数学函数库、基本矩阵函数库、二维三维图形函数库、逻辑字符运算函数库、调试与控制流程函数库、时间与日期函数库和特殊数学函数库等,支持面向多种程序设计语言的统一外部编程接口,支持不依赖第三方库的MATLAB程序移植,支持遗产MATLAB代码的快速适配。
OpenMatrix矩阵计算软件项目的下阶段规划是进一步开发和完善并行求解工具箱,突破关键领域算子并行优化,支持用户利用高性能计算机实现并行计算,使现有代码充分发挥底层高性能计算系统的算力资源,同时拟开发支持求解偏微分方程组的各种数值方法,包括有限差分、有限体积和有限元方法,提供面向CFD计算的网格生成和自适应细化工具箱;最后充分开放共享,提供海纳百川的软件框架,着重解决标准化接口问题,使潜在的用户群体都能参与软件开发,丰富软件的工具箱和功能模块。OpenMatrix矩阵计算软件将迭代发展形成生态,支撑航空航天飞行器装备设计、环境仿真、密码分析、生物安全等传统数值计算领域应用,持续提供高效的数值计算服务。目前OpenMatrix矩阵计算软件已发布基于天河超算在线版,拟在三年内进一步拓展应用到1000家科研单位,拓展用户10000名。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册