Scilab
ScilabはフランスのINRIAとENPCで作成されたMATLABに似た数値計算ソフトです。無料配布されており、脳磁図のデータ解析用に役立つだろうと思い、ホームページ上で公開したのですが、脳磁図関係者の反応は今ひとつでした。
ホームページで使用したScilabのversionは3.0で、Windows 32bit環境では1配列のメモリ制限が厳しく、作図機能にもbugがたくさん有り、決して使い勝手のよいものではありませんでした。
2010.9の時点ではWindows 64bit用のものも用意され、かなり使い勝手はよくなっているようです。
64bit版のscilab-5.2.2_x64.exe をinstallしてみてstacksizeが増えたかどうか調べてみました。
初期状態では5,000,000、最大では約268,000,000くらいです。使ったPCはWindows 7でCPUはIntel Celeron
SU2300 1.2GHz、RAMは4GBです。RAM12GB積んだ64bit PCでもmaxは同じでした。1stack=倍精度として約2GB位のデータなら扱えそうです。
以下の計算を行い、Scilab 5.2とMATLAB R2010aの演算速度を比較しました。
1) tic;for x=1:10;rand(1024,1024);end;toc
2) tic;for x=1:10;rand(1024,1024)*rand(1024,1024);end;toc
3) tic;for x=1:10;inv(rand(1024,1024));end;toc
4) tic;for x=1:10;svd(rand(1024,1024));end;toc
5) tic;for x=1:10;fft2(rand(1024,1024));end;toc % for Matlab
5) tic;for x=1:10;fft(rand(1024,1024),-1);end;toc //for Scilab
MATLABのFFTの処理が速い以外は特に差はありませんでした。
1)乱数 | 2)掛け算 | 3)逆行列 | 4)特異値分解 | 5)FFT | |
---|---|---|---|---|---|
scilab 5.2 | 0.339 | 5.816 | 6.990 | 23.363 | 6.381 |
MATLAB R2010a | 0.415 | 5.433 | 7.786 | 24.661 | 2.095 |