web-dev-qa-db-ja.com

MPICH2 gethostbynameが失敗しました

エラーメッセージが理解できません。私がしようとしているのは、mpich2バージョン1.4または1.5を/opt/mpich2にインストールした後にMPICH2アプリケーションを実行することです(どちらのバージョンも同じエラーで失敗しました)。私のMPIアプリケーションは1.3でコンパイルされましたが、別のワークステーションのmpi 1.4で実行できます。Ubuntu12.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)
26
biocyberman

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 

システム環境設定> 共有> コンピュータ名に移動すると、コンピュータの名前を変更/確認できます。

14

私のために働いたのは次のとおりです:

以下の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
12
Timothy Siwula

このエラーは、localhostの解決に問題があることを示しています。/etc/hostsファイルを確認し、localhostが正しく定義されていることを確認してください。127.0.0.1を指しているはずです。 sshを使用してlocalhostに接続してみて、それが同様に機能することを確認してください。

6
JamesTullos

質問が違うので、答えはおそらくOpenMPIについて以前に与えたものと同じです: gethostname()関数がopenMPIにありません

MPIポータブルソリューションはMPI_Get_processor_name()を使用することです

2
Sigismondo

多分あなたの/ dev/shmはいっぱいです、それをきれいにしてみてください。

0
Ling-Han Jiang