我使用MPI_Bcast广播代表137x137矩阵的2d双数组有两个以上处理器的问题。程序用C语言编写,使用OpenMPI。这就是我在做的事情:
...
double matrix[138][138] = {0.0};
int myid, numprocs;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
if(myid==ROOT){
[reading matrix from file to matrix array]
}
MPI_Bcast(matrix, M_SIZE, MPI_DOUBLE, ROOT, MPI_COMM_WORLD);
[some operation i.e. print matrix]
执行一个或两个处理器时没有问题,但是对于3个或更多程序暂停。当我尝试使用一维数组[138]时,根本没有问题。
我将非常感谢任何有用的信息。谢谢!