0

MPI_Get_count() はカウントに対して負の値を返すことができますか? メッセージのサイズが 1138 整数を超えることはありません。したがって、メッセージの長さの問題にはなりません。

    if(MPI_Probe(MPI_ANY_SOURCE,0,MPI_COMM_WORLD,&status) == MPI_SUCCESS)
    {
     printf("probe flag true\n");
     MPI_Get_count(&status,MPI_DOUBLE,&recv_size);
    }

取得した recv_size の値は負です。

4

2 に答える 2

1

MPI_Get_count は、メッセージ サイズが MPI_Get_count に指定されたデータ型のサイズの倍数でない場合、MPI_UNDEFINED (負である可能性が高い) を返します。したがって、MPI_BYTE として 5 バイトを送信しているのに、MPI_Get_count に、受信した MPI_DOUBLES の数を尋ねます。

于 2012-06-14T22:08:43.480 に答える
0

送信しているデータに問題があることに気づきました。値が double のサイズを超えました。それを修正し、コードが機能しました。助けてくれてありがとう、そしてバグのあるコードでごめんなさい!

于 2012-06-15T08:08:32.750 に答える