Windows プラットフォーム上のインテル MKL とリンクされていると主張する Python enthought ディストリビューションの線形代数ランタイムの速度をテストしています。IPythonインタラクティブシェルで次のことを行いました:
import scipy.linalg as la
import numpy.random
M = random.rand(1000,1000)
%timeit la.svd(M);
svd()
通常 1.3 秒かかりました。ただし、matlab R2011a を使用して実行した場合、M=rand(1000);tic;svd(M);toc
通常は 0.68 秒しかかかりません。
MKL と ATLAS、または MKL 以外の scipy ビルドを matlab で使用されている MKL と比較する同様の以前の質問を見てきました。しかし、ここでの私の状況は、python によって呼び出された MKL と matlabR2011a によって呼び出された MKL を正確に比較する必要があります。ですから、結果がなぜそれほど異なるのか、私にはまったくわかりません。これは、matlab から python に移行することを非常に思いとどまらせます。
ちなみに、enthrough で使用されている MKL のバージョンは 10.3.1 で、matlab R2011a のバージョンは 10.2.6 です。