本文讲的Matlab并行编程包括并行for循环和数据并行(同一个程序运行在不同的数据上),分别对应于parfor、spmd方法
1. 并行方法
parpool %开启并行池(parallel pool)
%parallel program
delete(gcp('nocreate')) % 关闭并行池
上面就是Matlab并行编程的形式。你的计算机有几个核,parpool就会开启几个worker
当然,你也可以设定worker的数目,如这样,开启2个worker
parpool('local',2)
至于中间的并行程序就要由parfor和spmd完成。
PS:Matlab之前的并行方法 matlabpool local 2 已经过时,现在新版的Matlab要用parpool
2. parfor
parfor(parallel for-loop)用于将for循环并行处理,当你的for循环每次迭代计算量很大,并且每次迭代都是独立的话,就可以用parpool来加速,下面是一个例子:
普通for循环