地表最强处理器的工程样品,跑OpenFOAM效果如何

近日购买服务器,供应商恰好有两块AMD 9654处理器,每颗96核,组了双路2U机架式服务器平台,总共拥有192颗物理核心,因为是工程样品,所以主频比正式版低,只有2.15GHz。配置好OpenFOAM环境,测试下效果,不知能抵得上几个超算节点。

测试算例使用500万单元的gravityDrivenOrificeFlow,和上次在魔方Ⅲ上使用的一样,魔方Ⅲ的测试结果请见?https://www.cfdem.cn/mofang3-benchmark/

AMD 9654ES的测试结果如下

CPU Time(s) Speedup
1 32743 1
32 1876 17.5
64 1117 29.3
128 745 44.0
192 588 55.7

在本文的测试条件下,与魔方Ⅲ对比单核性能小幅提升,不到10%,但是多核性能却好到惊艳,同样是32核的情况(对应魔方Ⅲ一个节点),9654ES只用了魔方Ⅲ 72%的时间;而64核(魔方Ⅲ的2个节点),9654ES只用了魔方Ⅲ 56%的时间,此时魔方Ⅲ依靠IB交换机进行通讯,并行效率明显下降;而到了128核,魔方Ⅲ花费的时间比64核更长,也就是说单纯增加规模无法让计算更快,此时,9654ES并行效率只是小幅下降,用时更少;9654ES使用全部的192个物理核心,仍然能继续提高计算速度,并没有出现用时增加的情况,说明9654ES 运行 OpenFOAM的并行计算能力非常强大,单台双路9654ES服务器的峰值计算能力大概是魔方Ⅲ的3倍。

另外测试了CFD-China的2000万网格算例2000个时间步的版本,并进行了性能优化,优化后的性能表现也令人满意。优化前,windows hyper-v 集成工具未启用,simpleFoam求解器运行耗时4119 s(Clock Time,下同),windows 任务管理器显示的CPU占用率约70%,说明未能充分发挥CPU性能,受到hyper-v资源分配的限制;启动hyper-v 集成工具后,宿主机(windows)和虚拟机(ubuntu)之间有了通讯,windows hyper-v可以更好地分配资源,这种条件下,simpleFoam求解器运行耗时4024 s,提高2.3%;进一步地,将384个逻辑内核全部分配给虚拟机,但计算时仍然保持192并行数,计算时长减少到3358 s,再提高16.5%。服务器在机房正式上架后,优化BIOS中的CPU设置,关闭超线程,虚拟机的核心数和物理机保持一致为192核,使用192核并行计算,耗时减小到3244 s,再提高3.4%。根据AMD 9004系列处理器架构设计白皮书,该处理器Zen 4架构多个核心共享L3 Cache,每个CPU有12个L3 Cache,因此MPI并行计算的瓶颈可能出现在多个进程争夺L3 Cache,因而,适当降低MPI并行数,并添加-map-by L3cache 选项,MPI并行数为180时,耗时 2824 s;并行数为168时,耗时2909 s;并行数为156时,耗时 xxxx s;并行数为144时,耗时 xxxx s。进行MPI运行优化后,最好成绩为2824 s,提高12.9%。

以上优化仅仅是调整了硬件和软件的使用方式,还未涉及开发过程中的优化,计算用时从4119 s,降低到2824 s,性能提高31.4%。进一步的编译器优化还在进行。

做完一系列优化之后,去论坛霸了一次榜,测试了cfd-china 200万网格的算例,结果如下:

cores Wall time (s):
192 57.82
190 48.26
128 35.09
64 45.29
32 72.56
16 134.86
8 167.85
4 259.53
2 569.34
1 928.2

最好成绩35 s,妥妥的榜一大哥。

从AMD上代产品运行OpenFOAM的测试结果规律看,9004系列采用DDR5内存,内存带宽更大,且两路CPU之间的通信带宽也远高于IB交换机,这是提高峰值并行计算能力的关键。但同时,使用192核的并行效率仅约29%,也就是说,在本文的测试条件下,相比内存带宽,CPU的内核数仍显得过多,从目前的定价看,128核心的9534 CPU应该最适合OpenFOAM计算,但该CPU目前没有在大陆销售,高频版的9554价格稍高;本文测试的9654ES因为是工程样品,价格低于9534,可谓相当划算。

AMD 9654ES
常恭

作者: 常恭

略懂 OpenFOAM

发表评论