部署好OpenFOAM v2112,无脑跑一下cfd-china的测试,单节点成绩如下
# cores Wall time (s):
------------------------
128 44.74
126 48.56
64 51.7
48 51.7
32 63.42
16 100.76
4 226.32
2 409.3
1 1084.48
Code language: CSS (css)
64核核48核成绩完全一样,似乎是碰到了功率墙,可能和机器散热有关,峰值性能44.74s,符合预期,32核的加速比大概是17,似乎还有优化空间。
然后用1000M以太网卡运行下两节点并行,共计128核,计算耗时52.02 s,可见成绩不如128核单节点运行,说明网络通讯成为瓶颈,没有RDMA,且带宽只有1000M,能有这个成绩已经非常好了。这里有一个坑记录一下,mpirun会使用ssh的端口进行通讯,因而如果ssh使用了非22端口,要在$HOME/.ssh/config
指出或者在mpirun命令里加参数。
之后配置了两块200GbE网卡的链路聚合,模式为802.3ad。128核并行计算耗时仍为50s,稍有提升,但还是比单机运行更慢。一定是因为网格太小,mpi的通讯开销超过了并行增益。所以,更换cfd china 2000w网格算例再进行测试。