WRF模型移植到鲲鹏服务器后运行速度异常,并行效率上不去
收藏回复举报
WRF模型移植到鲲鹏服务器后运行速度异常,并行效率上不去
t('forum.solved') 已解决
发表于2026-04-01 00:26:42
0 查看

我们课题组在把WRF气象模型迁移到鲲鹏920服务器上,机器是128核的,系统是openEuler。之前这套代码在Intel平台跑得很顺,移植过程本身没遇到什么编译报错,用的也是鲲鹏DevKit里推荐的编译器选项和优化参数。但问题出在跑起来之后——单核测试和Intel那边的结果差不多,甚至略好一点,可是一旦开启并行,加速比就崩了。64核跑出来的速度比32核快不了多少,128核反而比64核还慢一些。盯着htop看,CPU占用率只有百分之六七十,明显有很多核在空转,但MPI进程确实都起来了,也没有报错或者卡住的现象。

我用MPI自带的带宽测试工具检查过节点内的通信延迟,数值看上去还算正常。WRF自带的性能剖析工具显示,大部分时间卡在边界交换和积云对流这两个模块的通信上,计算部分占比较低。编译时试过不同层次的优化等级,也尝试关闭自动向量化,情况都没有明显改善。

我怀疑是不是MPI库的亲和性设置有问题,或者NUMA架构下内存访问没绑对核心。但说实话我对这种大规模并行的调优经验不太够,试了export一些OMP_NUM_THREADS和MPI相关的环境变量,要么没效果,要么直接跑不起来。想请教一下有经验的前辈,这种并行效率上不去的情况,在鲲鹏平台上应该从哪些方向去排查和调整?

我要发帖子