goはpythonよりどれぐらい高速か?

goとpython数値計算の速度比較を行いました。

比較するのはCG法を使った連立方程式の解法です。

処理内容

処理は大きく分けて2つです。

  1. 連立方程式の作成
  2. 作成した連立方程式をCG法で解く行列計算
    • CG法で解く前の行列に前処理はしない

連立方程式の未知数が400ぐらいの小規模なもので,行列は疎行列です。

環境

速度比較を行った環境は

OS Mac OS X バージョン10.6.8(Snow Leopard)
CPU Intel Core 2 Duo 2GHz
メモリ DDR3 1067MHz 2GB
python バージョン 2.7
go バージョン 1.1

ビルド

pythonの方はあらかじめコンパイルしておきます,pythonコンパイル方法はソースファイルのある場所で

 $ python -m compileall .

goの方は標準のものを使いました。(gccgoは使っていません)

結果

go 0.014秒
python 0.371秒

goの方が25倍以上速いという事になりました。