2016-10-25 13 views
2
私はCでMPI_Bcastを使用しています

が、それは(om3coupled.c:7284) PGC-S-0094-不正な型変換が必要なエラーを与える不正な型変換がMPIで必要です、デバッグに関する助言?私はモデルを遵守するとき

が、ライン7284は非常に簡単なコードです:

MPI_Bcast(sumw,1,MPI_FLOAT,0,MPI_COMM_WORLD); 

ここで、sumwは1の浮動小数点値です。これを前もって定義しました。私はそれをルートプロセスからすべてのノードにブロードキャストしようとしました。 私はおそらく、この一見正しい行にエラーが発生するために他の場所を混乱させたことは知っていますが、この行にはエラーメッセージしかありません。誰もどのようにデバッグするか考えていますか?コードは7000+行ですので、私は元のコードを添付していなかったので

答えて

1

プロトタイプは次のとおりです。

int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, 
      MPI_Comm comm) 

それは1つの要素の配列であるかのようにあなたがあなたのフロートのアドレスを渡す必要があります:

MPI_Bcast(&sumw,1,MPI_FLOAT,0,MPI_COMM_WORLD); 
+0

本当に問題です。私の混乱は、MPI_Bcast(ind、nmem、MPI_INT、0、MPI_COMM_WORLD)などの "&"を追加せずに浮動小数点数の行列を渡すだけでモデルのMP_Bcastをたくさん見たことです。ここで、indは浮動小数点型1次元配列(1 * nmem)です。 "&"はいつ必要ですか? – harmony

+0

値を持つときにアドレスに変換するには '&'が必要です。あなたが配列を持っているなら、それは既にアドレスなので、配列は必要ありません。 –

関連する問題