本文讲一下matlab中的并行方法与技巧,这里我们不涉及GPU加速,主要考虑for循环并行和数据并行。分为以下几个板块:
1. 怎么并行?
2. parfor vs. SPMD
3. 注意事项及经验总结
-----------------------------------------------------------
1. 如何并行?
1. Request a number of workers;
2. Issue the normal command to run the program. The client program will call on the workers as needed;
3. Release the workers;
具体到代码:
matlabpool local 2;
%parallel program
matlabpool close
其中2是core数目,注意2是core数。你的电脑如果是双核四线程的,那么只能申两个(而非4个)matlab local pool。
具体实现parallel program呢,主要是通过parfor(parallel for)和SPMD(single program, multiple data)完成的。
-----------------------------------------------------------