树莓派和其他板与MPICH通信有问题



我在Odroid n2+和Raspberry Pi上安装了mpich。Odroid n2+是一个更强大的主板,我想运行我的大部分程序,我把树莓派作为一个单独的服务器,以便与程序通信。我已经使用命令apt install mpich在两块板上安装了mpich。Odroid单板运行Ubuntu 20.04.4 LTS,树莓派运行2020-08-20-raspios-buster-armhf-lite。我运行了示例mpi发送接收

中发布的代码如果我在Odroid板上显式运行代码,它工作得很好,如果我在树莓派上运行它,我得到一个退出代码11。因此,我从https://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz

手动在两块板上重新安装了mpich。当这种情况发生时,我编译代码,它分别在两个板上工作。我还可以运行命令mpirun -f machinefile -n 2 hostname,它打印每个板的主机名。这告诉我,我正确地设置了ssh,并且mpich能够登录到两个板。然而,当我运行上面的代码时,它发送和接收消息,当代码中调用MPI_SsendMPI_Wait(&request, MPI_STATUS_IGNORE);时,它会暂停。

我使用mpic++ test_sendRecv.cpp -Wall -Werror -o test_sendRecv命令编译它,然后使用mpirun -f machinefile -n 2 ./test_sendRecv运行它。如果我使用mpiexec而不是mpirun,我会得到同样的问题。

如果我是正确的,这意味着板之间无法传递消息?

有办法补救吗?

我在其他板上也有同样的问题。我从来没有尝试过足够的时间来真正弄清楚是什么导致了这个问题,或者想出一个解决方案。但是,我确实创建了一个存储库,它可以使用套接字作为更伪的mpi。它们只传递字符串消息,但我确信添加额外的类型甚至文件传递将是非常直接的。我把仓库放在这里

相关内容

  • 没有找到相关文章

最新更新