VBMの前処理にはどのくらいの時間がかかりますか?という質問を受けましたので、様々なマシンで計測してみました。
3人の3D-T1 MRI画像(ボクセルサイズ 1x1x1mm)をVBM8でDARTELでノーマライズしています。
前処理の設定をvbm8_preproc.matという名前で保存して、以下のベンチマークスクリプトを用意しました。とても単純なMATLABのスクリプトで、処理の前後にtic, tocというコマンドを入れることで前処理にかかった時間を測定するというものです。
%vbm8_benchmark.m tic spm('defaults','pet'); spm_jobman('initcfg'); load vbm8_preproc.mat; spm_jobman('run',matlabbatch); toc
その結果は、以下のようになりました。
Machine | CPU | Core | Thread | Memory | OS | Matlab | Processed time |
Workstation BTO | AMD Opteron Processor 2425HE x 2 | 12 | 12 | 24GB | Xubuntu 12.04 | R2013b | 74m31s |
Desktop BTO | Core i7-960 3.2GHz | 4 | 8 | 24GB | Xubuntu 12.04 | R2011b | 34m47s |
Desktop BTO | Core i7-960 3.2GHz | 4 | 8 | 24GB | Xubuntu 12.04 | R2013b | 33m20s |
Mac Book Pro (Late 2011) | Core i7-2640M 2.8GHz | 2 | 4 | 8GB | Mac OSX 10.9 | R2011b | 30m29s |
Thinkpad T430s | Core i7-3520M 2.9GHz | 2 | 4 | 16GB | Windows 7 | R2013a | 35m0s |
Thinkpad T430s | Core i7-3520M 2.9GHz | 2 | 4 | 16GB | Xubuntu 12.04 | R2013b | 29m12s |
Desktop BTO | Core i7-3930K 3.2GHz | 6 | 12 | 32GB | Xubuntu 12.04 | R2013b | 26m52s |
この結果をまとめると、以下のようになります。
- CPUが一番影響します。新しいCPU、かつ1コアあたりの性能が高いCPUだとよい結果となります。
- これはSPM全体に言えることですが、マルチコアは効果はたいしてありません。逆に言えば、SPMを複数立ち上げて処理させることで処理時間を短縮できる可能性があります。
- メモリは8GB以上あれば、さほど変わりありません。
- WindowsとLinuxを比べるとLinuxに軍配があがります。
- Matlabもバージョンが最新の方が処理速度が改善されているようです。
ということで、SPM-VBMという観点からでは、1コアあたりの周波数ができるだけ速いCPUを入手することをお勧めします。