0

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

有什么建议么?

谢谢并恭祝安康!

4

1 回答 1

2

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

于 2012-10-12T19:09:11.003 回答