如何提高Matlab计算效率,多核处理器并行计算怎么弄啊

如何提高Matlab计算效率,多核处理器并行计算怎么弄啊,我用matlab计算一个繁琐的公式,计算很慢,而cpu使用率很低,为什么,如何提高效率。

如果CPU利用率低,而计算慢的话,说明你的程序处理的数据量并不大,但是处理流程很复杂,里面肯定涉及了很多的类似于for循环的语句,使得程序的时间复杂度一下子就上去了。看了下面你的补充回答,好像和多核处理并行计算没关系的。虽然最新版的matlab支持这种运行方式,但感觉你似乎还用不到这么做。建议你还是优化一下你的算法。尽量减少for循环的次数,对于矩阵和向量运算,直接可以采用matlab现有的运算方法。追问

用partfor这个我知道啊 ,不考虑程序问题,有没有什么设置啊,

追答

使用parfor 之前要用matlabpool 设置命令 matlapool size 是看你开启几个进程,如果是0,那当然是速度没变 可以用matlabpool local 2 设置为双线程,你的速度基本可以提高一倍,最好是线程数等于你的机器的核数,,应该是最好的,
当然具体情况你自己试一下

最后用 matlabpool close 结束

参考资料:http://www.ilovematlab.cn/viewthread.php?tid=47041

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-15
MATLAB为一种解释性语言,在for循环等的运行效率方面与C语言等相差明显,但如果方便将问题以向量或矩阵的形式运算的话,matlab具有无可比拟的计算效率优势。新的matlab2010确实提供了for循环等的多核处理命令,如parfor等,但限制条件过多,并不实用。
其实,在当前的主流计算机的计算速度保证下,只要进行预分配维数等操作,for循环也不会十分慢。所谓预分配维数指先定义a=ones(1,256)等,然后再for循环a(i)=...
相似回答