我正在使用Python .7.10在Ubuntu 14.04.3系统上运行针对OpenMPI 1.10.1构建的mpi4py 2.0.0。出于某种原因,尝试发送大于64 Kb的消息会导致send / recv挂起;但是,我能够使用完全相同的软件和OpenMPI / mpi4py软件包在其他Ubuntu 14系统上成功发送大量消息。我也能够在使用OpenMPI的C程序中成功发送大量消息。这表明环境中的某些东西会对mpi4py执行的MPI通信产生负面影响。关于什么可能干扰mpi4py的任何想法?
以下是在一个系统上工作的代码示例,当N设置为65537或更高时,该代码会挂起另一个系统。
one
我还尝试使用明确指定的固定长度缓冲区替换带有非pickle Send / Recv的pickle send / recv,但这对问题没有任何影响。
奇怪的是,这个问题似乎并没有影响使用相同通信器的对等进程之间的传输。
答案 0 :(得分:1)
问题解决了:OpenMPI因为Docker创建的虚拟网络接口的存在而感到困惑。删除界面使得古怪消失了,尽管人们也可以将OpenMPI告诉ignore the interface。