声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1427|回复: 2

[综合讨论] 关于双核与matlab的运行速度问题

[复制链接]
发表于 2008-1-5 15:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

[ 本帖最后由 eight 于 2008-1-5 19:29 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-1-5 20:42 | 显示全部楼层
和你的程序编制也有很大关系,不好说孰慢孰快。   要充分利用双核,最好用matlab2007a或b,然后打开matlab的双核并行选项。

评分

1

查看全部评分

发表于 2008-1-7 09:38 | 显示全部楼层
原帖我发在simwe

充分利用双核电脑进行多线程计算
在mathworks网站上看到了Loren写的如何充分利用双核笔记本多线程计算的介绍,感觉非常有用,以前的matlab版本一直不能利用多核电脑的功能使得电脑的一个核完全浪费,2007b加入的新功能现在看来完全支持多线程计算了,这对于一些常常进行大规模计算的用户是一个很好的消息。这里把Loren的方法关键地方摘要出来,供大家参考,原帖可以登录:http://blogs.mathworks.com/loren ... urse/#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.
可以看见时间减少了差不多二分之一
还有很多值得探讨的地方,大家都来发表发表看法吧。

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-5 04:26 , Processed in 0.056188 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表