- 締切済み
Sparse matrix 計算
Sparse matrix 計算 Ax=Bの行列計算で、行列は最大で10000*10000になります。Cでガウスの消去法を使ってコードが書いたのですが、計算がかなり遅いので,何かいいライブラリがないかと思って探しているのですが、CLAPACKはsparse matrixに向いてないと書いてあり、どうすればいいのか考えているところです。BLASだけでも計算時間は早くなるのでしょうか?sparse matrixの解を求めるソフトウェアは出てるのですが,有料のものもあるのですが、無料のものでできるのであればそちらを使いたいと思ってます。アドバイスお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- qwertfk
- ベストアンサー率67% (55/81)
回答No.2
確かCLAPACKはsparse matrixに向いていないというよりは、一般疎行列を解くソルバが無かったと思います。 無料のものなら、以前opennlで一般疎行列のソルバがあったと思います。 商用のものなら、mklのpardisoとかですかね。 性能は確かmklのほうが良かったような気がします。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
えぇと.... それは, たぶん最初から間違えています. A が疎という条件なら, 何らかの反復解法が first choice じゃないかなぁ.
補足
Aが最大で10000*10000のsparse matrixになります。反復法、直接法としらべてみたのですが、sparse matrixだと、反復法が向いてあると書いてありました。しかし、私の作っているプログラムですと、Aの行列はデータによってサイズが変わるので、直接法のほうが早いときもあると思います。 まず、CLAPACK/BLASをインストールしてみたので、これから精度を試してみます。