MPICH2 gethostbyname 失败
Posted
技术标签:
【中文标题】MPICH2 gethostbyname 失败【英文标题】:MPICH2 gethostbyname failed 【发布时间】: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)
【问题讨论】:
【参考方案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 的主机名相同:
-
终端主机名
“/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
【讨论】:
我遇到了这个完全相同的问题(请注意在原始发布后一年多) - 这个答案为我提供了解决方案。 ***.com/questions/42041706/…【参考方案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 已满,请尝试清理它。
【讨论】:
以上是关于MPICH2 gethostbyname 失败的主要内容,如果未能解决你的问题,请参考以下文章