我有一个编译好的Fortran代码,但在执行此MPI_Allgather
例程时返回错误
call MPI_Allgather(rank, 1, MPI_INTEGER,
allranks(0:np-1), np, MPI_INTEGER, MPI_COMM_WORLD, erro)
rank
是一个整数变量,allranks
是一个整数数组,其np
个位置标有0
到np-1
错误是
malloc.c:4630: _int_malloc: Assertion `(unsigned long)(size) >= (unsigned long)(nb)' failed.
有没有人知道错误的原因?如果是这样,我怎么解决这个问题?
答案 0 :(得分:2)
第五个参数表示从任何进程接收的元素数。在你的情况下,这应该是1.这是recvcount应该说明你期望每个进程有多少条目。 MPI标准规定:
与进程中 sendcount,sendtype 关联的类型签名必须等于与任何其他进程中 recvcount,recvtype 关联的类型签名。