私たちは現在mpirunを使って複数のX11クライアントを起動するプログラムを書こうとしています。プログラムがプレーンテキストの場合は、次のコマンドを使用してコンピュータのリストからプロセスを実行できます。
mpirun -np 4 --hostfile hostlist date
ここのホストのリストは、mpiで構成されたコンピュータ上のファイルです。コンピュータは公開鍵を使用して自動的に認証するように設定されています。また、ローカルコンピュータでX11プログラムを実行することもできます。たとえば、次のようになります。
mpirun -np 4 xclock
4つのxclockが期待どおりに表示されます。ただし、ホストファイルを使用してX11プログラムを実行しようとすると:
mpirun -np 4 --hostfile hostlist xclock
その後、両方のxclockが起動しますが、リモートシステムは以下を報告します。
Error: can't open display:
しかし、私たちはすでに構成しています。.ssh/configそして
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