異なるクラスター ノードでいくつかのプロセスを開始するだけの MPI プログラムを作成する必要があります。これは私のサンプルコードです。
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[]) {
int rank, size, nodenamesize;
char nodename[100];
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Get_processor_name(nodename, &nodenamesize);
printf("Hello world! I am %d of %d running on %s\n", rank, size, nodename);
if (rank == 0) {
system("./Longwait&");
} else if (rank == 1) {
system("./AnotherLongWait&");
}
MPI_Finalize();
return 0;
}
プロセスは正常に開始されますが、MPI アプリケーションは終了しません。MPI_Finalize() が呼び出された後も待機します。
このコードの何が問題になっていますか? MPI プログラムが他のアプリケーションを起動するだけで、何も待たないようにするにはどうすればよいですか。
よろしくお願いします、ロボ。