簡體   English   中英

如何加速MATLAB代碼?

[英]How to speed up MATLAB codes?

就像MATLAB作為一種數學語言一樣,它的速度並不像它那樣快。 我想知道加速運行MATLAB代碼的一般做法是什么? 例如,我知道如果不是運行for循環,可以用矢量/矩陣格式進行計算,他將看到運行代碼的速度。

我想知道還有什么其他建議。

以下是一些基本的性能提示:

  1. 學習使用分析器來了解計算的哪些部分很慢
  2. 通過矢量化限制昂貴的函數調用量
  3. 預先分配數組,而不是在循環中增長它們
  4. 使用多線程函數(例如bsxfun
  5. 使用最新版本的Matlab - 在過去的5年中取得了巨大的性能提升
  6. 使用並行工具箱進行多核和/或GPU處理
  7. 使用有效的算法
  8. 在適當的地方使用Java或C / C ++代碼(雖然加速可能令人失望)

如果您正在進行大量易於並行化的操作, parfor將自動並行化您的for循環: http//www.mathworks.com/help/toolbox/distcomp/parfor.html

安裝Lightspeed。

我最近經歷了在我的Mac上安裝Tom Minka的Lightspeed的令人沮喪的過程。 在此過程中,我學到了一些值得與其他Mac用戶分享的艱苦教訓。 我的系統有以下規格OS X版本10.8.5 Xcode版本4.6.3 Matlab版本2011a

1)確保Lightspeed安裝在名稱中沒有空格的路徑上。 我錯誤地把它放在“Library / Application Support / Matlab”中,這給我帶來了無窮無盡的麻煩。 特別是,它引發了Tomer Levinboim(levinboim.blogspot.co.nz)報告的相同問題,並且他的修復程序沒有完全解決問題!

2)閱讀Michel Valstar的筆記“在Mac上編譯Matlab Mex文件”並安裝Mathworks推薦的補丁( http://www.mathworks.com/matlabcentral/answers/94092 )。 此補丁應用Levinboim識別的所有必需的標志/選項更改。

3)更改lightspeed文件夾內install_lightspeed.m文件中的行options.COMPFLAGS,指向:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

4)在Matlab中檢查當前路徑是否指向Lightspeed文件夾。 運行命令install_lightspeed。 如果成功運行test_lightspeed。 你現在應該有一個工作版的Lightspeed!

5)路徑設置在會話之間保持不變,因此在Mac上看起來在Read Me中建議的startup.sh方法似乎是不必要的。 但是,如果您希望沿着該軌道前進,請先閱讀:
startup.m應該在哪里? http://obasic.net/set-your-customized-startup-file-for-matlab

您可以在這里開始回顧一些開始考慮矢量化的方法。
在那之后, 這里給出的PDF雖然不完整,但卻提供了許多可以提供良好性能的Matlab習語。

我剛剛在這里找到了: 編寫快速MATLAB代碼 由Pascal Getreuer和這里: Lightspeed Toolbox 好東西...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM