2017-02-24 2 views
-1

ベクトル加算は、mpiのオーバーヘッドのために並列処理されるよりも速く処理されるのが速いのですか?私は、2つの配列を散らばってmpiを使って、各スレーブに対して局所的にある数のベクトルペアを処理してから、すべての値をマスターに返すように集計を実行しました。並列プログラミングベクターの追加

答えて

0

はい、これはまったく予想されます。ベクトル加算は、メモリから値を読み書きするコストが支配的です。加算はメモリから1つの要素を読み書きするよりも数桁高速です。パフォーマンスを向上させるには、散布/追加/収集を試みるのは無駄です。スキャッター/ギャザーからパフォーマンスを得るには、各データ要素で非常に高価な操作を実行するか、各データ要素を複数回使用する必要があります。

慣用的なMPIプログラムでは、最初にベクターが存在するはずです。

編集:行列の各要素に1回だけアクセスすると、ベクトル/行列の乗算についても同様です。

+0

これは行列ベクトル乗算にも当てはまりますか? – mathdoejoe

+0

はい、行列の各要素は1回だけアクセスされるためです。 – Zulan