MPI_Comm_spawn を使用してリモート ノードでワーカー プロセスを開始するにはどうすればよいですか?
OpenMPI 1.4.3 を使用して、次のコードを試しました。
MPI_Info info;
MPI_Info_create(&info);
MPI_Info_set(info, "host", "node2");
MPI_Comm intercom;
MPI_Comm_spawn("worker",
MPI_ARGV_NULL,
nprocs,
info,
0,
MPI_COMM_SELF,
&intercom,
MPI_ERRCODES_IGNORE);
しかし、それは次のエラー メッセージで失敗します。
-------------------------------------------------- ------------------------ アプリケーションに割り当てられたリソースがありません ワーカー 要求されたマッピングに一致するもの: を使用して、割り当てられたリソースを適切にマップしたことを確認します。 --host または --hostfile の指定。 -------------------------------------------------- ------------------------ -------------------------------------------------- ------------------------ デーモン (pid 不明) がシグナル 1 で予期せず終了しました。 起動するので、中止します。 環境によってさらに多くの情報が報告される場合があります (上記を参照)。 これは、デーモンが必要なすべての共有を見つけることができなかったことが原因である可能性があります リモート ノード上のライブラリ。LD_LIBRARY_PATH を設定して、 リモートノード上の共有ライブラリの場所。 自動的にリモート ノードに転送されます。 -------------------------------------------------- ------------------------
「node2」をローカル マシンの名前に置き換えると、問題なく動作します。node2 に ssh し、そこで同じことを実行すると (info ディクショナリに "node2" を指定して)、正常に動作します。
親プロセスを mpirun で開始したくないので、リモート ノードでプロセスを動的に生成する方法を探しています。これは可能ですか?