【发布时间】:2013-11-06 03:12:28
【问题描述】:
我正在研究一种在不同光照条件下的自适应和全自动分割算法,该算法的核心使用粒子群优化(PSO)来调整模糊系统,相信我这非常耗时:|只有 5 个粒子和 100 次迭代,我必须等待 2 到 3 个小时!它只是从我的数据集中处理一张包含 100 多张照片的图像!
我正在使用 matlab R2013 ,带有 intel coer i7-2670Qm @ 2.2GHz //8.00GB RAM//64 位操作系统
问题是:启动程序时它只使用了我的 CPU 的 12%-16% 并且只有一个内核在工作!!
我搜索了很多并进入了 matlabpool,所以我将这一行添加到我的代码中:
matlabpool open 8
现在,当我启动程序时,任务管理器显示 98% 的 CPU 使用率,但这只是几秒钟!之后它又回到了 12-13% 的 CPU 使用率:|
你知道我怎样才能让这段代码运行得更快吗?!
【问题讨论】:
-
我没有足够的知识来评论加速此代码,但是您的描述表明上述代码可能只使用一个线程。由于您表示您有 100 个文件,您可以探索一次处理 4 个以上文件的想法(调整数量以获得最大的 CPU 利用率)。即在此代码周围放置一个 parfor (1:numfiles)。
标签: matlab time consuming particle-swarm