我正在尝试运行我使用MPI在两台计算机上编写的程序。与MPIRUN一起启动时,使用本地计算机上的4个内核,它可以完美运行。我已经配置了ssh,以便本地计算机无需密码即可登录到远程计算机。每当我运行MPIRUN并指定主机文件时,都会出现分段错误和“未映射地址:(某些地址)”。每当我运行它时,地址都会更改。有时只是(零)。当我尝试使用主机文件并运行ring_c示例时,也会发生这种情况。我在两台计算机上都安装了OpenMPI 3.1.2,并为与该作业关联的用户安装了OpenMPI 3.1.2。
主机文件内容
localhost
mpiuser@192.168.1.236
我也尝试过在主机文件中使用主机名ubuntu-vm。这个主机名在我的/ etc / hosts文件中。当我键入ssh mpiuser @ ubuntu-vm或ssh mpiuser@192.168.1.236时,它使我登录没有问题,也没有密码提示。我已经尝试在两台计算机上多次重新安装OpenMPI。
这可能是特定于OpenMPI的问题吗? mpich可能起作用吗?我不明白为什么这么难上班。我认为使用标准安装说明并运行示例程序不会有问题。
我在两台机器上都使用ubuntu 18.04。远程计算机是Windows 10主机中的VM。桥接的网络适配器配置。我将程序放入一个共享文件夹,在尝试运行它们之前,可以从两台计算机上访问它们。如果我的先前声明不清楚,则示例程序ring_c在多台计算机上运行时也会失败,但在本地计算机上运行时不会。
命令行:
MPIRUN -np 8 --hostfile hostfile ./ring_c
样本错误输出:
====================== ALLOCATED NODES ======================
ubuntu-desktop: flags=0x11 slots=4 max_slots=0 slots_inuse=0 state=UP
192.168.1.236: flags=0x10 slots=1 max_slots=0 slots_inuse=0 state=UNKNOWN
=================================================================
[ubuntu-desktop:11654] *** Process received signal ***
[ubuntu-desktop:11654] Signal: Segmentation fault (11)
[ubuntu-desktop:11654] Signal code: Address not mapped (1)
[ubuntu-desktop:11654] Failing at address: 0x10
答案 0 :(得分:3)
这是Open MPI中的真实错误(双重免费错误),已在https://github.com/open-mpi/ompi/pull/5863的master
分支中进行了修复。
与此同时,您可以手动下载并应用https://github.com/open-mpi/ompi/pull/5869上可用的补丁
请注意,“ Open MPI Users”邮件列表或github repo(https://github.com/open-mpi/ompi)是报告此类问题的最佳位置。
(mpirun
绝不应该崩溃,因此不太可能发生编程错误)