SPM/更快 SPM
SPM 華夏公益教科書已遷移至 https://www.fil.ion.ucl.ac.uk/spm/docs/ |
一個名為maxmem的預設變數指示在 GLM 估計過程中同一時間可以使用多少記憶體。如果您的計算機擁有大量 RAM,您可以在 spm_defaults.m 中增加該記憶體設定
defaults.stats.maxmem = 2^30;
- 2^32 = 4GB
- 2^31 = 2GB
- 2^30 = 1GB
- 2^29 = 512MB
在 SPM12 中,還有一個名為resmem的預設變數,它控制在 GLM 估計過程中臨時檔案是儲存在磁碟上 (false) 還是儲存在記憶體中 (true)。如果您有足夠的可用 RAM,不將檔案寫入磁碟將加快估計速度。
defaults.stats.resmem = true;
與 SPM 捆綁提供的已編譯 MEX 檔案的構建方式使其與大多數平臺和 MATLAB 版本相容,但您可能會從針對您的確切平臺/MATLAB 版本編譯它們中受益 - 一些 C 編譯器也可能會生成最佳化程度更高的二進位制檔案(例如 英特爾編譯器)。有關如何重新編譯 SPM MEX 檔案的更多詳細資訊,請參閱安裝頁面。
請注意,不建議在啟動 MATLAB 時停用 JAVA 虛擬機器 (matlab -nojvm)。如果您不想使用 MATLAB 桌面,您可以首選使用以下方法啟動 MATLAB:
matlab -nodesktop
在 'nodesktop' 模式下使用 Matlab 時,以以下方式初始化 SPM 以防止圖形視窗開啟
spm('defaults', 'fmri')
spm_jobman('initcfg')
spm_get_defaults('cmdline',true)
(將 'fmri' 替換為 'pet' 或 'eeg',具體取決於情況。)
最近的 MATLAB 支援隱式多處理,允許在單臺機器上執行多個執行緒,而無需對 MATLAB 程式碼本身進行任何更改:這需要一個多 CPU(多處理器或多核)系統。不過,SPM 的計算時間增益並不顯著。
參見
如果您並行執行多個 MATLAB 會話以手動分配您的 SPM 處理,建議將計算執行緒數設定為 1。
為您的系統安裝最新的基本線性代數子程式 (BLAS)/線性代數包 (LAPACK),因為 MATLAB 在其版本中沒有提供最新版本。
主要選擇包括
有關如何使用 ATLAS/MKL 升級您的 MATLAB 庫的更多資訊,請參閱
- http://software.intel.com/en-us/articles/using-intel-mkl-with-matlab/
- http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-using-intel-mkl-in-matlab-executable-mex-files/
- http://imaging.mrc-cbu.cam.ac.uk/imaging/SpmWithPentium4
有關 SPM2 的更多資訊,請參閱 pSPM。
目前正在進行工作以提供 SPM 的官方並行/分散式版本。
另請參閱 Sun Grid Engine 專案 (SGE)
MATLAB 可以利用 GPU(與 CPU 相反,圖形卡的處理器)來執行某些操作,從而顯著提高速度。提供了一些工具箱
- 平行計算工具箱 使用 MATLAB 進行 GPU 計算
- MATLAB GPU 計算
- 使用支援 CUDA 的 GPU 加速 MATLAB
- NVIDIA GPU 和 MATLAB
- NVIDIA NGC
- CUDA SPM GPU 加速的 SPM 影像配準
- 深度學習框架
另請參閱
- https://www.frontiersin.org/articles/10.3389/fninf.2014.00024/full
- https://www.sciencedirect.com/science/article/pii/S0169260711001957
- https://www.sciencedirect.com/science/article/pii/S1361841513000820
- https://link.springer.com/article/10.3758%2Fs13415-013-0165-7
- https://doi.org/10.1109/MSP.2009.935387