iewoug 发表于 2008-1-5 15:06

关于双核与matlab的运行速度问题

刚买了双核 Inter E4500 2.2g
还有台电脑是单核2.66g
MATLAB运行哪个速度会快的一些那?
是不是充分利用双核必须装matlab2007a啊?

[ 本帖最后由 eight 于 2008-1-5 19:29 编辑 ]

心灯 发表于 2008-1-5 20:42

和你的程序编制也有很大关系,不好说孰慢孰快。   要充分利用双核,最好用matlab2007a或b,然后打开matlab的双核并行选项。

clarkyeah 发表于 2008-1-7 09:38

原帖我发在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]
查看完整版本: 关于双核与matlab的运行速度问题