【问题标题】:MPICH2 gethostbyname failedMPICH2 gethostbyname 失败
【发布时间】:2014-05-31 12:10:34
【问题描述】:

我不明白错误信息。我要做的是在将 mpich2 版本 1.4 或 1.5 安装到 /opt/mpich2 后运行 MPICH2 应用程序(两个版本都失败并出现相同的错误)。我的 MPI 应用程序是用 1.3 编译的,但我可以在另一个工作站上用 mpi 1.4 运行它。我正在 Ubuntu 12.04 上对其进行测试。

Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(467)..............: 
MPID_Init(177).....................: channel initialization failed
MPIDI_CH3_Init(70).................: 
MPID_nem_init(319).................: 
MPID_nem_tcp_init(171).............: 
MPID_nem_tcp_get_business_card(418): 
MPID_nem_tcp_init(377).............: gethostbyname failed, localhost (errno 3)

【问题讨论】:

    标签: mpi mpich


    【解决方案1】:

    由于问题不同,答案可能与我之前为 OpenMPI 给出的答案相同: gethostname() function missing in openMPI

    MPI 便携解决方案是使用MPI_Get_processor_name()

    【讨论】:

    • 感谢您的回答。我错过了错误消息的第一行。
    【解决方案2】:

    此错误表示解析 localhost 时出现问题。检查您的 /etc/hosts 文件,确保您在此处正确定义了 localhost,它应该指向 127.0.0.1。尝试使用 ssh 连接到 localhost,确保也能正常工作。

    【讨论】:

    • ssh 到 localhost 有效。我会尝试寻找其他的东西,稍后再回来。
    • 这是我必须做的解决这个问题:通过sudo scutil --set HostName 设置一个正确的主机名,然后将新的主机名(比如my_computer.local)添加到/etc/hosts,如127.0.0.1 my_computer.local。此外,您必须在“共享”设置中启用 SSH 访问,并将您的公钥添加到 authorized_keys 文件 (cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys)。
    【解决方案3】:

    对我有用的是:

    确保下面 1 和 2 的主机名相同:

    1. 终端主机名
    2. “/etc/hosts”主机名

    所以如果你在终端输入cat /etc/hosts 它应该是这样的:

    // 127.0.0.1       my_hostname
    

    对于我来说,我的主机名 1 和 2 不同。一旦我将它们更改为匹配,我的 mpi 程序就会执行。

    要更改终端主机名,请键入以下内容: sudo scutil --set HostName my_new_host_name

    要更改您的 /etc/hosts 主机名,请键入以下内容: sudo nano /etc/hosts

    然后添加一行

    127.0.0.1       my_new_hostname
    

    【讨论】:

    【解决方案4】:

    macOS 解决方案

    我在 macOS 10.12.1 上偶然发现了这个问题。

    解决方法是将127.0.0.1 computername.local 添加到/etc/hosts。您的文件或多或少会像这样:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1   localhost
    127.0.0.1   computername.local
    255.255.255.255 broadcasthost
    ::1             localhost 
    

    如果您转到系统偏好设置 > 共享 > 计算机名称,您可以更改/检查您的计算机名称。

    【讨论】:

    • 就我而言,我的计算机名称不知何故改变了。我认为它应该与您编译和安装 MPI 保持一致。当我把它改回来时,一切正常!但是,仍然感谢您指出正确的方向!
    • 我必须在 MacOS 10.14.6 上添加 127.0.0.1 computername(没有 .local)
    【解决方案5】:

    可能你的 /dev/shm 已满,请尝试清理它。

    【讨论】:

      猜你喜欢
      • 2012-08-28
      • 2017-01-16
      • 2013-08-22
      • 2017-09-18
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 2011-07-13
      • 2015-09-12
      相关资源
      最近更新 更多