使用 ssh 和 X11 的 mpirun

使用 ssh 和 X11 的 mpirun

目前我们正在尝试编写一个使用 mpirun 启动多个 X11 客户端的程序。如果程序是纯文本的,那么使用以下命令,我们可以在计算机列表上运行进程:

mpirun -np 4 --hostfile hostlist date

这里的hostlist是mpi配置的计算机的文件。计算机被设置为使用公钥自动进行身份验证。我们也可以只在本地计算机上运行X11程序,例如:

mpirun -np 4 xclock

按预期显示四个 xclock。但是,如果我们尝试使用主机文件运行 X11 程序:

mpirun -np 4 --hostfile hostlist xclock

然后两个 xclock 启动,但远程计算机报告:

Error: can't open display:

不过我们已经配置了.ssh/配置

ForwardX11 Yes

我们可以验证以下命令序列是否有效:

ssh 10.0.0.2
# connect to mpi cluster node
xclock
# xclock appears on screen

此外,如果我们使用 mpirun 的 -x 设置 DISPLAY 变量,如下所示:

mpirun -np 4 --hostfile hostlist -x DISPLAY=10.0.0.1:0.0 xclock    

然后我们得到另一个错误:

Error: can't open display: 10.0.0.1:0.0

我们尝试通过以下方式禁用任何访问控制:

xhost +

总而言之,我们需要一些有关 mpirun 和 X11 转发的帮助。我们在 Ubuntu 12.10 和 openmpi 1.4.5 上运行。

答案1

以下命令似乎效果很好

mpirun -d -np 4 -hostfile hostlist -mca pls_rsh_agent "ssh -X -n" xclock

相关内容