当我通过以下方式运行程序时:
myshell$] mpirun --hosts localhost,192.168.1.4 ./a.out
程序执行成功。现在,当我尝试运行时:
myshell$] mpirun --hosts localhost,myac@192.168.1.4 ./a.out
openssh 提示输入密码。我得到:
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(433)..............:
MPID_Init(176).....................: channel initialization failed
MPIDI_CH3_Init(70).................:
MPID_nem_init(286).................:
MPID_nem_tcp_init(108).............:
MPID_nem_tcp_get_business_card(354):
MPID_nem_tcp_init(313).............: gethostbyname failed, myac@192.168.1.4 (errno 1)
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[proxy:0:0@myac] HYD_pmcd_pmip_control_cmd_cb (./pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:0@myac] HYDT_dmxu_poll_wait_for_event (./tools/demux/demux_poll.c:77): callback returned error status
[proxy:0:0@myac] main (./pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@myac] HYDT_bscu_wait_for_completion (./tools/bootstrap/utils/bscu_wait.c:76): one of the processes terminated badly; aborting
[mpiexec@myac] HYDT_bsci_wait_for_completion (./tools/bootstrap/src/bsci_wait.c:23): launcher returned error waiting for completion
[mpiexec@myac] HYD_pmci_wait_for_completion (./pm/pmiserv/pmiserv_pmci.c:217): launcher returned error waiting for completion
[mpiexec@myac] main (./ui/mpich/mpiexec.c:331): process manager error waiting for completion
为什么在我提供用户名时出现错误?
最佳答案
您可以尝试在 ssh 配置文件 ( http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ ) 中指定用户名,而不是在 mpirun 命令行上。这样也许 mpirun 不会被额外的用户名部分混淆,据我从文档中可以看出它不支持。但是 ssh 可以在幕后使用您在 ssh 配置文件中指定的用户名。当然,您需要设置 SSH key ,这样您就不必输入密码了。
关于c - 尝试使用用户名运行 MPI 程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504467/