エラーメッセージが理解できません。私がしようとしているのは、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)
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と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
このエラーは、localhostの解決に問題があることを示しています。/etc/hostsファイルを確認し、localhostが正しく定義されていることを確認してください。127.0.0.1を指しているはずです。 sshを使用してlocalhostに接続してみて、それが同様に機能することを確認してください。
質問が違うので、答えはおそらくOpenMPIについて以前に与えたものと同じです: gethostname()関数がopenMPIにありません
MPIポータブルソリューションはMPI_Get_processor_name()
を使用することです
多分あなたの/ dev/shmはいっぱいです、それをきれいにしてみてください。