CAE(Computer Aided Engineering)是指利用计算机对工程及工业产品的结构、性能及运行状态等进行仿真,CFD(Computational Fluid Dynamics)是指利用计算机数值求解流体力学问题。
目前,基于高性能计算机的CAE/CFD仿真在航空航天、汽车船舶、石油化工、土木建筑等领域有广泛的应用。并且,随着计算机技术的不断发展,CAE/CFD在上述领域的作用愈渐重要,特别是在航空航天领域,CAE/CFD已经成为与理论分析和风洞实验并列的三种研究手段之一。美国航天局NASA预测,航空航天飞行器的设计会在不远的将来发生革命性的变化,即实现在基于CAE/CFD仿真数据的数值风洞中的虚拟飞行。
高性能计算在CAE/CFD上应用的首要目标是用最低的成本获取最接近真实的结果。目前,CAE/CFD行业软件众多,客户对这些软件的应用要求也是千差万别,难以形成统一的解决方案。
那么高性能计算在CAE/CFD中应如何应用优化呢?首先,我们先分下CAE/CFD的特征。
CAE/CFD软件基本上采用有限元法或有限体积法求解控制方程,在计算时涉及大量的前后时间步迭代以及交界区域处理,属于计算密集型,对CPU性能的要求自然是越高越好。
一般来讲,采用显式时间格式的CAE/CFD软件对内存容量的要求一般,而采用隐式时间格式的CAE/CFD软件对内存容量有比较高的要,至于对内存带宽的要求则是与单节点内的进程数直接关联的,进程数越多,内存带宽要求越高。
在I/O层面上,多数CAE/CFD软件在读操作时,由主进程读入数据,然后向从进程分发数据;在写操作时,由主进程统一收集从进程的数据,然后主进程写出数据。也就是说,只有主进程直接负责I/O操作。因此,CAE/CFD对I/O存储的压力一般。
如前所述,由于CAE/CFD软件在计算时要做前后时间步迭代和交界区域处理,因此,对网络通信也比较高,宜采用InfiniBand网络。
接下来,我们再看一下如何进行高性能计算的CAE/CFD运行优化。
由于CAE/CFD多为商业软件,一般只能做硬件级优化与运行级优化。考虑到前文的特征分析,在硬件级优化层面,我们可以通过配置高主频CPU和四通道内存来分别提高CPU、内存的性能,更可以通过对网络接连拓扑,路由选择算法以及RDMA等方面进行优化来提升InfiniBand网络的通信能力。
在运行级优化层面,一般是采用MPI优化的策略。例如,MPI进程绑定优化,MPI消息传递机制优化,以及MPI通信共享内存优化等。随着PGAS(Partitioned Global Address Space)编程模型,以及GPU、MIC等加速协处理器的发展,上述传统算法将会被极大改进。
以Fluent算例为例,浪潮使用其自主开发的“天眼”高性能应用特征监控分析系统(英文:Teye),监测和分析了Fluent的应用特征。在Intel Xeon E5-2680v3 CPU平台上和144个进程下,计算了1000万网格规模的Fluent算例。
在下图中,通过浪潮天眼可以看出Fluent 的CPU利用率接近100%,参与计算的物理核心基本上在满载运行,说明了Fluent属于计算密集型。
浪潮天眼分析Fluent算例的CPU利用率
在内存带宽方面,天眼监测到Fluent的内存带宽需求主要发生在网格构建、合并及划分之后总内存带宽约为45GB/s。其中,读内存带宽约为40GB/s,写内存带宽约为5GB/s。Fluent由主进程读入和写出数据,从进程不直接参与I/O操作。另外,数据读写量与Fluent算例大小成正关系。
浪潮天眼分析Fluent算例的内存带宽
此外,我们还可以看到除开始阶段主节点的读操作速率达到40MB/s外,在Fluent的整个计算过程中,I/O操作压力比较小。作为典型的CFD软件,Fluent需要采用InfiniBand网络进行数据通信。
浪潮天眼监测Fluent算例的磁盘读写操作情况
在计算初期,Fluent通过网络进行大量的数据发送与接收操作。在之后的计算过程中,数据发送与接收呈现连续流特征,其速率维持在60MB/s ~ 100 MB/s。由此可见,Fluent是一款网络密集型软件。
浪潮天眼监测Fluent算例的InfiniBand网格数据发送与接收情况
下图为浪潮天眼分析监测的Fluent算例的雷达图,直观地显示了Fluent的各项应用特征。
通过浪潮天眼分析的Fluent软件应用特征雷达图
浪潮在高性能计算方面拥有丰富的CAE/CFD优化经验,通过浪潮天眼可以更全面、更精细的分析CAE/CFD软件特征,提供软硬一体化的全方位优化方案。目前浪潮的CAE/CFD高性能计算应用方案已经广泛的应用在了航空航天、汽车船舶、建筑建设等行业。
原文发布时间为:2016-06-02