OctaveとPython(Numpy)の行列の掛け算の実行速度テスト
先日、研究室でMATLAB
とPython(Numpy使用)
の行列の積の速度テストをしてみた結果、
MATLABの方が倍ぐらい速いらしいことがわかりました。
MATLABは製品ですからね、当然といえば当然の結果です。
逆にNumpyでそこまでの速度が出るのが驚きです。
では、通称無料版MATLAB
のOctaveと比較するとどうなんでしょうか。
試してみました。
test.py
import time import numpy as np for i_trial in range(5) : a = np.random.rand(1000, 1000) b = np.random.rand(1000, 1000) c = np.ones((1000, 1000)) time_python = 0 for i in range(100) : time_start = time.time() c = np.dot(a,b) time_end = time.time() time_python = time_python + (time_end - time_start) print( time_python )
test.m
for i_trial = 1:5 a = rand(1000, 1000) ; b = rand(1000, 1000) ; c = ones(1000, 1000) ; time_octave = 0 ; for i=1:100 tic ; c = a * b ; time_octave = time_octave + toc ; end disp(time_octave) ; end
どちらも1000×1000のランダムな行列の積を、5回求めています。
手持ちのCore i7なMacBookProで実行した結果・・・
% octave 4.1992 4.2182 4.2005 4.2004 4.2418 # python 4.256770849227905 4.300849676132202 4.309364557266235 4.3376030921936035 4.32429313659668
あんまり変わらないですね。
でもPythonの方はまだ速くなる余地がありそうです。
Atsushi TATSUMA Web Page » GotoBLAS を使ったビルドで Numpy を高速化する
まぁ、意外とOctaveも捨てたもんじゃないということで。
気力があればC++とも比較してみたいところです。
(PythonとNumpyのインストールについてはこちらを参照↓)
Homebrewを使ってMacにPython3とかNumpyとかPcipyとかをインストールする - 開発のヒホ