09/02/16 09:59:37
というわけでMatlabを含めてテスト
テスト対象のCPUはiMacの人と同じくIntel Core2Duo 2.4GHz
テストスクリプトは
n=2000; A=randn(n); B=randn(n);tic; C=A*B; t=toc, MFLOPS=2*n^3/t*1e-6
のまま
Octave Cygwin版3.0.3 GFLOPS = 1.1429
Octave MSVC版3.0.3 GFLOPS = 2.3239
MatlabR2008a(MT OFF) GFLOPS = 6.1464
MatlabR2008a(MT ON) GFLOPS = 10.326
(MT:マルチスレッド)
そして
Octave MacOSX版 GFLOPS = 12.5
Matlabをもってしても勝てません。もちろんループはOctaveの方が速いので
実際のプログラムの速度ではOctave-MacOSよりMatlabの方が速いでしょう
えーとちなみにMatlabは「安すぎる」と日本の関係者に言われている
アメリカの1ユーザーパッケージでも$1900で、日本国内で個人が買うと…
とても信じられない価格です ^_^;。
じゃあどうするか
・マルチスレッド対応のテキサス州立大学のGotoBLASを使う(無料、自由配布不可)
・マルチスレッド対応のインテルMKLを使う(有料、自由配布不可)
・Macを買う
・Matlabにお布施
ちなみにGotoBLASとMKLは同程度のパフォーマンスのようです。