より高速に実行しようとしている線形代数コードがあります。これは、ループと行列ベクトルの乗算を含む反復アルゴリズムです。これまでのところ、MATMUL (Fortran Lib.)、DGEMV を使用しました。OpenMP で独自の MV コードを作成しようとしましたが、アルゴリズムはスケーラビリティの点で優れていません。割り当てているプロセッサの数に関係なく、スピードアップはかろうじて 3.5 ~ 4 です (64 個のプロセッサを試しました)。プロファイリングは、Matrix-Vector でかなりの時間が費やされていることを示しており、残りはごくわずかです。私の質問は、大量の RAM とプロセッサを備えた共有メモリ システムを使用していることです。コードの OpenMP 実装 (Matrix Vector を含む) を微調整しようとしましたが、役に立ちませんでした。MPI でのコーディングは役に立ちますか? 私は MPI のプロではありませんが、メッセージ通信を微調整する機能は少し役立つかもしれませんが、確信は持てません。コメントはありますか?
より一般的には、私が読んだ文献によると、MPI = Distributed、OpenMP = Shared ですが、それらは他の領域でうまく機能しますか? Shared の MPI のようなものですか? それはうまくいきますか?うまくやれば、OpenMP 実装よりも優れていますか?