私は以下を計算しようとしています:
Y = Y0-(Un。(A * Y0)+ Vn。(Y0 * Z))* dt
Y0、Un、Vn、A、およびZが300 X 300 "のオーダーの次元の行列である場合、可能な限り最速/最も効率的な方法で。は行列の内積であり、「*」は行列の乗算を表します。
私の質問は次のとおりです。
計算上独立した部分行列A2=A*Y0およびZ2=Y0 * Zを計算し、次にUn2 =Un。*A2およびVn2=Vn。*Z2を、Y = Y0-(Y = Y0-( Un2 + Vn2)* dt?もしそうなら、この並列計算がどのように行われるかについての良い例は何ですか?
他に、より良い/推奨されるアプローチ(ATLASの使用など)はありますか?
言語はC++であり、これはマルチコア(少なくともデュアル)プロセッサを搭載したLinuxまたはWindowsプラットフォームで実行されます。現在、BLASパッケージとしてBOOSTuBLASを使用しています。