0

私は、多くのノルム、内積、そして最も重要なことに、行列ベクトルの乗算を実行する必要があるアプリケーションを持っています。

行列とベクトルは巨大です。マトリックスの寸法は100000x100000になる傾向があります

ループ構造は次のとおりです。

while(condition)
/* usually iterations=dimension of matrix, so around 1 million iterations are *at least* required (if not more) */
matrix-vector multiplication
3 dot prods
2 norms

現在、IntelMKLでIntelFortranを使用しています。IntelMKLを使用してIntelCでコードを書き直すことは役に立ちますか?誰かが何らかのベンチマークを実行したことがありますか(特にDGEMVの場合)?コードを書き直すのは大変な苦痛ですが、理由がわかれば書き直してもかまいません。

編集:私は誤解しました:マトリックスの寸法は100万ではなく100000です。かなり深刻なエラー:|

そして、はい、マトリックス高密度であり、高密度である必要があります。さらに、それは対称的ではなく、正の明確ささえありません。私のアルゴリズムはQMRの修正バージョンです。

4

1 に答える 1

9

ライブラリ呼び出しをサポートする実際の実装は同じであり、コード内の基本的にすべての時間がこれらのライブラリ呼び出しに費やされるため、パフォーマンスはCまたはFortranのどちらでも完全に同じになります。

于 2012-01-05T17:29:46.593 に答える