【问题标题】:MPIRUN Segmentation fault whenever I use a hostfile每当我使用主机文件时,MPIRUN 分段错误
【发布时间】:2019-03-13 10:02:22
【问题描述】:

我正在尝试运行我在两台使用 MPI 的机器上编写的程序。当使用 MPIRUN 启动时,它在本地机器上使用 4 个内核运行得非常好。我已经配置了ssh,这样本地机器就可以不用密码登录远程机器了。每当我运行 MPIRUN 并指定主机文件时,都会出现分段错误和“地址未映射:(某些地址)”。每次运行时地址都会更改。有时它只是(零)。当我尝试使用主机文件并运行 ring_c 示例时,也会发生这种情况。我在两台计算机上以及与作业相关的用户都安装了 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 主机中的虚拟机。桥接网络适配器配置。在尝试运行它们之前,我将程序放入可从两台机器访问的共享文件夹中。如果我之前的陈述不清楚,示例程序 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

【问题讨论】:

    标签: ubuntu mpi openmpi


    【解决方案1】:

    这是 Open MPI 中的真正错误(双重释放错误),已在 master 分支 https://github.com/open-mpi/ompi/pull/5863 中修复。

    同时,您可以手动下载并应用https://github.com/open-mpi/ompi/pull/5869提供的补丁

    请注意 Open MPI 用户邮件列表,或者 github 存储库 (https://github.com/open-mpi/ompi) 是报告此类问题的最佳位置。 (mpirun 应该永远不会崩溃,因此不太可能是编程错误)

    【讨论】:

    • 感谢您的回复。我实际上忘记了我问过这个问题,我尝试安装 MPICH 并且它运行完美。我知道这对某些人来说不是很有用,但我想在某些情况下它可能是一种选择。
    猜你喜欢
    • 2011-10-01
    • 2018-09-22
    • 2014-12-24
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多