最近要使用matlab对数据集进行处理,由于数据集很大,matlab串行处理效率很低。
在网上查到可以使用parfor循环代替原本的for循环来实现matlab中的并行循环。
parfor要求循环中的数据没有上下依赖,每个循环之间相互独立,这样才能在多个处理器上运行并行任务。
在使用parfor时,总是出现各种问题,最后直接用parpool启动matlab并行计算,把原来for循环中的内容单独放到一个函数中,在parpool中间调用,成功实现并行处理
但是这样做,每次都要重新开启和关闭进程池,效率还不是最高的
参考:
https://blog.youkuaiyun.com/lpsl1882/article/details/50781525
https://www.mathworks.com/help/parallel-computing/transparency.html
https://blogs.mathworks.com/loren/2009/10/02/using-parfor-loops-getting-up-and-running/#11
https://www.mathworks.com/help/parallel-computing/convert-for-loops-into-parfor-loops.html
https://blog.youkuaiyun.com/q664111/article/details/50775363
https://blog.youkuaiyun.com/u013249853/article/details/88735663
本文介绍了如何利用MATLAB的parfor循环进行并行计算,以解决大数据集处理效率低下的问题。尽管parfor要求循环迭代间独立,但通过将for循环内容放入单独函数并在parpool中调用,实现了并行处理。然而,这种方法每次都需要重启和关闭进程池,效率不最高。建议深入学习MATLAB并行计算的透明性和最佳实践,以优化并行处理流程。
1002

被折叠的 条评论
为什么被折叠?



