我需要编写一个 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 程序启动一些其他应用程序,但不应该等待任何事情。
谢谢你,问候,机器人。