我正在试验 MPI,当我在命令行上通过 mpirun 运行它时,我一直收到这个错误。
----------------------------------------------------------------------------------------------
mpirun noticed that the job aborted, but has no info as to the process
that caused that situation.
----------------------------------------------------------------------------------------------
我不知道为什么,因为其他 mpi 程序运行得很好。
这是我的代码。
#include <stdio.h>
#include <mpi.h>
int func(int num){
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (num == 0){
num = 5;
MPI_Bcast(&num, 1, MPI_INT, rank, MPI_COMM_WORLD);
}
return num;
}
int main(int argc, char **argv){
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
printf("On processor %d, func returns %d\n", rank, func(rank));
MPI_Finalize();
return 0;
}
该程序仍然给我同样的错误。if 语句中的 MPI_Bcast 是否无效?如果您在不是 root 时尝试广播,它仍然有效吗?