本文讲一下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)完成的。
-----------------------------------------------------------

本文介绍了Matlab中的并行编程方法,重点讨论了parfor和SPMD的区别。parfor适用于不依赖其他迭代结果的循环,并行化简单计算,而SPMD在同一段代码中处理不同数据,可用于随机抽样并行和块并行。注意事项包括避免在parfor中使用eval,不嵌套parfor或spmd循环,以及遵循parfor的透明性规则。欢迎分享更多并行编程技巧。
最低0.47元/天 解锁文章
284





