关于双核与matlab的运行速度问题
刚买了双核 Inter E4500 2.2g还有台电脑是单核2.66g
MATLAB运行哪个速度会快的一些那?
是不是充分利用双核必须装matlab2007a啊?
[ 本帖最后由 eight 于 2008-1-5 19:29 编辑 ] 和你的程序编制也有很大关系,不好说孰慢孰快。 要充分利用双核,最好用matlab2007a或b,然后打开matlab的双核并行选项。 原帖我发在simwe
充分利用双核电脑进行多线程计算
在mathworks网站上看到了Loren写的如何充分利用双核笔记本多线程计算的介绍,感觉非常有用,以前的matlab版本一直不能利用多核电脑的功能使得电脑的一个核完全浪费,2007b加入的新功能现在看来完全支持多线程计算了,这对于一些常常进行大规模计算的用户是一个很好的消息。这里把Loren的方法关键地方摘要出来,供大家参考,原帖可以登录:http://blogs.mathworks.com/loren/2007/10/03/parfor-the-course/#comment-23981
直接给出例子,计算随机生成方阵的秩,方阵大小从1变到400,单核计算方法:
n = 400;
ranksSingle = zeros(1,n);
maxNumCompThreads(1);
tic
for ind = 1:n
ranksSingle(ind) = rank(magic(ind));
end
toc
plot(1:n,ranksSingle, 'b-o', 1:n, 1:n, 'm--')
Elapsed time is 22.641646 seconds.
多核计算方法
先写一个函数
function ranks = parMagic(n)
ranks = zeros(1,n);
parfor (ind = 1:n)
ranks(ind) = rank(magic(ind));% last index could be ind,not n-ind+1
end
这里的parfor是2007b的新函数,用于并行计算
执行如下语句
matlabpool local 2
tic
ranksPar = parMagic(n);
toc
Elapsed time is 13.836088 seconds.
可以看见时间减少了差不多二分之一
还有很多值得探讨的地方,大家都来发表发表看法吧。
页:
[1]