把循環並行化。或者優化循環體中的代碼是最常常使用的加快程序執行速度的思路。編程
比例如如下方代碼中a就是簡約變量。 性能
a = 0; for i = 1:1000 a = a+i; end
+ - * .* & | [,] [;] {,} {;} min max union intersect
。* [] {}
底層有特殊處理保證結果的正確性。優化
a[i] a[i+1]
同一時候出現則a不被識別爲切片變量。不影響parfor以前聲明的同名變量。spa
tmp = 5; broadcast = 1; reduced = 0; sliced = ones(1, 10); parfor i = 1:10 tmp = i; reduced = reduced + i + broadcast; sliced(i) = sliced(i) * i; end
matlabpool n
命令可以打開n個worker。matlabpool open configname
依照指定配置打開,默認配置爲local
。matlabpool close
關閉worker。Parallel -> Manage Cluster Profile
完畢。c-1
。對於計算密集型程序,超線程帶來的性能提高差點兒爲0,可以設置爲核心數,而不是線程數。.net
尤爲對於廣播變量。假設較大可嘗試變爲切片變量。線程