c - 尝试使用用户名运行 MPI 程序时出错

标签 c multiprocessing mpi mpich

当我通过以下方式运行程序时:

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/

相关文章:

C编程,数组排序

C 数组错误 - 要求我声明同一个变量两次

mysql - 对 SQL 表的许多非常相似的更新 - 优化?

c - C中的动态分配

python - 如何使用 Python 多处理 Pool.map 在 for 循环中填充 numpy 数组

python - 为什么 multiprocessing.Pool 和 multiprocessing.Process 在 Linux 中的表现如此不同

python - 通过 python 多处理挂起启动子进程

c++ - MPI 多次发送和接收

c++ - Boost mpi x64 警告 "size_t to int"

c - 如何使用 MPI 发送和接收二叉树?