2012-10-12 50 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討論一些地方看看。