跳轉到內容

SPM/更快 SPM

來自華夏公益教科書,開放的書籍,為開放的世界
< SPM

SPM 最佳化

[編輯 | 編輯原始碼]

調整 SPM 設定

[編輯 | 編輯原始碼]

一個名為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;

編譯 MEX 檔案

[編輯 | 編輯原始碼]

與 SPM 捆綁提供的已編譯 MEX 檔案的構建方式使其與大多數平臺和 MATLAB 版本相容,但您可能會從針對您的確切平臺/MATLAB 版本編譯它們中受益 - 一些 C 編譯器也可能會生成最佳化程度更高的二進位制檔案(例如 英特爾編譯器)。有關如何重新編譯 SPM MEX 檔案的更多詳細資訊,請參閱安裝頁面。

MATLAB 最佳化

[編輯 | 編輯原始碼]

一般宣告

[編輯 | 編輯原始碼]

最大限度地提高 MATLAB 效能.

請注意,不建議在啟動 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

[編輯 | 編輯原始碼]

為您的系統安裝最新的基本線性代數子程式 (BLAS)/線性代數包 (LAPACK),因為 MATLAB 在其版本中沒有提供最新版本。

主要選擇包括

  • ATLAS - 自動調整線性代數軟體(開源)
  • MKL - 英特爾數學核心庫
  • ACML - AMD 核心數學庫
  • GotoBLAS - GotoBLAS(德克薩斯州高階計算中心)

有關如何使用 ATLAS/MKL 升級您的 MATLAB 庫的更多資訊,請參閱

平行計算

[編輯 | 編輯原始碼]

SPM 工具箱

[編輯 | 編輯原始碼]

有關 SPM2 的更多資訊,請參閱 pSPM

通用工具

[編輯 | 編輯原始碼]

目前正在進行工作以提供 SPM 的官方並行/分散式版本。

另請參閱 Sun Grid Engine 專案 (SGE)

使用圖形處理單元 (GPU)

[編輯 | 編輯原始碼]

MATLAB 可以利用 GPU(與 CPU 相反,圖形卡的處理器)來執行某些操作,從而顯著提高速度。提供了一些工具箱

另請參閱

華夏公益教科書