最近要使用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