HyperMPI与OpenMPI混编时在集合通信中产生数据错位
收藏回复举报
HyperMPI与OpenMPI混编时在集合通信中产生数据错位
t('forum.solved') 已解决
发表于2026-04-23 02:07:40
0 查看

我们有一个比较老旧的HPC应用,部分模块依赖OpenMPI编译的第三方库,而新开发的模块希望用HyperMPI来提升鲲鹏平台上的通信性能。因此我们在同一个MPI作业中尝试混用两种MPI库:主程序用HyperMPI编译,动态链接了一个用OpenMPI编译的库。编译链接都没有报错,程序也能正常启动。但运行一段时间后,我们发现某些集合通信的结果出现了数据错位,具体表现为本该发送给进程2的数据出现在了进程3的缓冲区里,而且错位的模式不是固定的,有时甚至导致进程挂起。用纯HyperMPI或者纯OpenMPI编译整个程序都没有这个问题。我们已经确认两个MPI库使用的通信协议都是InfiniBand verbs,并且版本兼容性矩阵上显示二者支持混用。想请教这种数据错位的现象是什么原因造成的,有没有办法在不统一MPI库的情况下解决。

我要发帖子