1

C で MPI を使用して Fox アルゴリズムの実装をコーディングしています。既に global_matrix を小さなブロックに分割しています。したがって、各プロセスには行列 A と行列 B の小さなブロックがあります。ただし、Fox アルゴリズムの実装方法を理解するのに苦労しています。インターネット上で見つかった多くのコードは、次のことを行っています。

Foxアルゴリズムの実装

わからないこと : 最後のスライドには、アルゴリズムを実装する C コードがあります。しかし、一時配列は適切に初期化されていないようで、MPI_Bcast() や行列の乗算で使用すると奇妙な動作が発生するはずです。

アルゴはほぼ機能していると思いますが、結果の値は間違いなく間違っています。

(必要に応じてコードを提供できます)

ご回答ありがとうございます。

4

2 に答える 2

1

元の質問には答えませんがMPI_Bcast、両方ともブロックの最初の引数としてmatrixmult取り、おそらく変数を格納する宛先として使用します。tmpelse

これらの 2 つの関数がどのように実装されているかを確認しないと、tmpがユニット化されて使用されているかどうかを確認できません。

また、割り当てられたメモリは、私が依存する動作ではありませんが、malloc0 で初期化されることがあります。

最後に、スライドでコードを使用する場合は、 の結果をキャストしないでmallocください。

于 2013-06-05T03:12:25.563 に答える