PythonとCythonを比較してみる | 貯え 小道具 興味ない?

貯え 小道具 興味ない?

「貯えもの」とは、いってもお金をご想像の方は、ご遠慮くださいまし。
Storage = Data Storage
関わってお仕事したり、使ってて感じたことなり
記すBlogでございます。
トラックバックを時折頂きますが、削除する場合がございます。

書籍
Cython ―Cとの融合によるPythonの高速化/オライリージャパン

¥3,456
Amazon.co.jp

を初めから読んでみて第4章に辿り着いて、やっとソースコードレベルでphthonのソースコードからCythonのコードに変換して使う例題が出てきました。

$ python nbody.py 50000

でスクリプトの動作をまず確かめました。

Pythonのコードを変換して高速化するのは、setup.pyというスクリプトが鍵のようです。
書籍に出ているsetup.pyは次のような数行のpythonのコードです。
(ここから)
from distutils.core import setup
from Cython.Build import cythonize

setup(name="nbody",
ext_modules=cythonize("nbody.pyx"))
(ここまで)

この中のnbodyというのは今回テストしたシミュレーションプログラムのファイル名です。もともとnbody.pyというpythonのスクリプトを用意してあり、これをnbody.pyxにコピーしてCythonのプログラムとしてコンパイルする時に必要なのが上の「setup.py」というスクリプトの様です。
実行には

$ python setup.py build_ext -i

と入力して拡張モジュールをビルドします。
その後で

$python run_body.py 50000 と実行して

Cythonにより高速化した拡張モジュールを使ってPythonスクリプトと同じ処理をさせてみて処理速度の違いを比較しています。高速化は確かめらられました。ただこの参考書読んで頭の中で整理するのに時間がかかりそうです・・・