0

問題なくコンパイルできる Fortran コードがありますが、このMPI_Allgatherルーチンを実行するとエラーが返されます

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

rankは整数変数で、位置が~ ~のラベルが付いallranksた整数配列です。np0np-1

エラーは

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

エラーの原因を知っている人はいますか? もしそうなら、どうすればこれを解決できますか?

4

1 に答える 1

2

5 番目の引数は、任意のプロセスから受け取る要素の数を示します。つまり、recvcount は、各プロセスから予想されるエントリの数を示す必要があります。MPI 標準には次のように記載されています。

プロセスのsendcount、sendtypeに関連付けられた型シグネチャは、他のプロセスのrecvcount、recvtypeに関連付けられた型シグネチャと等しくなければなりません。

于 2013-09-05T11:53:12.703 に答える