MPICH2 gethostbyname失败

时间:2014-04-16 14:33:42

标签: mpi mpich

我不明白错误信息。我试图做的是在我将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)

5 个答案:

答案 0 :(得分:14)

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 

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

答案 1 :(得分:12)

对我有用的是:

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

  1. 终端主机名
  2. “/ etc / hosts”hostname
  3. 因此,如果您在终端中输入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
    

答案 2 :(得分:6)

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

答案 3 :(得分:2)

问题不同,答案可能与我之前为OpenMPI提供的内容相同: gethostname() function missing in openMPI

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

答案 4 :(得分:0)

也许您的/ dev / shm已满,请尝试清理它。