我不明白错误信息。我试图做的是在我将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)
答案 0 :(得分:14)
我在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的主机名相同:
因此,如果您在终端中输入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已满,请尝试清理它。