制作Fortran MPI_Allgather代码时出错

时间:2013-09-04 19:21:25

标签: fortran mpi

我有一个编译好的Fortran代码,但在执行此MPI_Allgather例程时返回错误

call MPI_Allgather(rank, 1, MPI_INTEGER,            
                   allranks(0:np-1), np, MPI_INTEGER, MPI_COMM_WORLD, erro)

rank是一个整数变量,allranks是一个整数数组,其np个位置标有0np-1

错误是

malloc.c:4630: _int_malloc: Assertion `(unsigned long)(size) >= (unsigned long)(nb)' failed.

有没有人知道错误的原因?如果是这样,我怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

第五个参数表示从任何进程接收的元素数。在你的情况下,这应该是1.这是recvcount应该说明你期望每个进程有多少条目。 MPI标准规定:

  

与进程中 sendcount,sendtype 关联的类型签名必须等于与任何其他进程中 recvcount,recvtype 关联的类型签名。