2012-10-12 25 views
0

我想在我的程序中使用MPI_Barrier(),但是有一些致命错误。MPI_Barrier()不适用于小群集

这是我的代码:

1 #include <stdio.h> 
    2 #include "mpi.h" 
    3 
    4 int main(int argc, char* argv[]){ 
    5   int rank, size; 
    6 
    7   MPI_Init(&argc, &argv); 
    8   MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    9   MPI_Comm_size(MPI_COMM_WORLD, &size); 
10   printf("Hello, world, I am %d of %d. \n", rank, size); 
11   MPI_Barrier(MPI_COMM_WORLD); 
12   MPI_Finalize(); 
13 
14   return 0; 
15 } 

这是输出:

Hello, world, I am 0 of 2. 
Hello, world, I am 1 of 2. 
Fatal error in PMPI_Barrier: Other MPI error, error stack: 
PMPI_Barrier(425).........: MPI_Barrier(MPI_COMM_WORLD) failed 
MPIR_Barrier_impl(331)....: Failure during collective 
MPIR_Barrier_impl(313)....: 
MPIR_Barrier_intra(83)....: 
dequeue_and_set_error(596): Communication error with rank 0 

有什么建议?

感谢和问候!

回答

2

这通常反映了某种配置错误 - 主机或用户名配置在节点间不一致,或者某种防火墙阻塞某些端口。 MPICH2 FAQ讨论一些地方看看。