BLASと聞いて、Rでも
実は Python の行列演算ライブラリはどれも lapack/blas を内部的に呼んでいるので、C/C++ 等と比較してもそんなに遅くない。それどころか、自動的に並列化できるところは並列化してくれたりするので、まれに C より速いこともあるらしい。特に巨大なグラフを作る場合、ほとんどの処理は C などで書かれた関数に飛ぶので、速度的な問題は無視してもいいくらいである(逆に、小さい行列をひたすら計算する場合、Python とのやりとりのオーバーヘッドが気になってくるが)。
きのうきょう、ちょうどPageRankなんて話をしたりして、HITSなんかもちらっと記憶の隅にでてきていたので。
この「Python」の部分は「R」でも成り立つはずだ。
少なくとも、そういう風にコンパイルすれば、そうなる。
デフォルトのバイナリは、どの程度最適化されてるんだろう。じぶんが、一番がっつりCPU回したときは「学術研究」だったのでGotoBLASをあてたバイナリを最初から使ってたから、わかんないけど。gccでなく、iccとかってインテルコンパイラに差し替えるだけでも速くなるとか、いや純正ライブラリまで買わないとそうでもないとか、なんかいろいろ数だけは耳にしてるのですが。たしかXcodeにはApple御謹製のBLASだかLAPACKが入ってたはず。G4のAltiVec部分をなんとかして使えないかと考えてた頃もありました。いまはIntel Macなので、よくわかんない。
疎行列計算は、たしかスパースとかいう言い方を聞いたことがある。ゼロの多い行列という意味だったか。