我不明白错误信息.我试图做的是在我安装mpich2版本1.4或1.5后运行MPICH2应用程序/opt/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)
Run Code Online (Sandbox Code Playgroud)
Mat*_*ski 16
我在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
Run Code Online (Sandbox Code Playgroud)
如果转到" 系统首选项" >" 共享" >" 计算机名",则可以更改/检查计算机的名称.
Tim*_*ula 13
对我有用的是:
确保下面的1和2的主机名相同:
因此,如果您输入cat /etc/hosts终端,它应该如下所示:
// 127.0.0.1 my_hostname
Run Code Online (Sandbox Code Playgroud)
我的主机名对于1和2来说不一样.一旦我将它们改为匹配,那么我的mpi程序就会执行.
要更改终端主机名,请键入以下内容:
sudo scutil --set HostName my_new_host_name
要更改/ etc/hosts主机名,请键入以下内容:
sudo nano /etc/hosts
然后添加该行
127.0.0.1 my_new_hostname
Run Code Online (Sandbox Code Playgroud)
小智 6
此错误表示解析localhost时出现问题.检查你的/ etc/hosts文件,确保你在这里正确定义了localhost,它应该指向127.0.0.1.尝试使用ssh连接到localhost,确保它也能正常工作.
由于问题不同,答案可能与我之前为 OpenMPI 给出的答案相同: openMPI 中缺少 gethostname() 函数
MPI 便携式解决方案是使用MPI_Get_processor_name()
| 归档时间: |
|
| 查看次数: |
11139 次 |
| 最近记录: |