質問: 大規模疎行列の高速な計算方法について 突然の思い付きで大規模疎行列と列ベクトルの積を高速に計算する必要に迫られています。 しかし、右も左もわからない状態です(ついさっき疎行列という言葉を知りました)。 なにか取っ掛かりが欲しいのですが参考になる資料などありましたら是非教えてください。 計算する行列の特徴などを書いておきます ・約2600万×2600の万正方行列です(分割しない場合) ・対角線(左上から右下)に対して対称に分布しています ・対角線上に帯状に分布しています ・ゼロでない要素は全体の0.002%程度です(十分大きい行列の場合) さらに、gpuを使いたいとも思っています。 煮え切らない質問で申し訳ないのですがどうぞよろしくお願いします。
回答: 対称バンド行列とベクトルの積で検索すればいろいろとでてきます。 balsのlevel2に?sbmvというルーチンがあります。 http://www.rcs.arch.t.u-tokyo.ac.jp/kusuhara/fswiki/wiki.cgi?page=%bf%f4%c3%cd%b7%d7%bb%bb%a5%e9%a5%a4%a5%d6%a5%e9%a5%ea 疎行列の計算についてはsparseというライブラリがあります。(これについては名前だけしか知りません) cublasとcusparseという上記に対応したgpu版がありますのでそれを使うのがよいと思います。 https://developer.nvidia.com/gpu-accelerated-libraries また自分でgpu用のプログラムを作るのでしたら、最近ではopenaccに対応したコンパイラが出ていますのでそれを使う手も