MPI_Barrier()不适用于小型集群

时间:2012-10-12 08:14:50

标签: mpi

我想在我的程序中使用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

有什么建议吗?

谢谢和问候!

1 个答案:

答案 0 :(得分:2)

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