24小时热门版块排行榜    

CyRhmU.jpeg
查看: 796  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

希尔伯特

木虫 (正式写手)

[求助] 关于matlab并行问题已有2人参与

在matlabpool open local 2下,1+...+100用for循环,在matlabpool open local 2下时间会缩短将近一半,是否打开matlabpool open local 2计算都是两个线程计算?如果是这样,网上一个经典例子
tic
%传统方式计算
c1=1;
for i = 1:500
   c1 = c1+max(eig(rand(i,i)));
end
t1 = toc;
matlabpool open;
%parfor并行方式计算
tic
c2=1;
parfor ii = 1:500
  c2 = c2+max(eig(rand(ii,ii)));
end
t2 = toc;
matlabpool close;
display(strcat('parfor并行计算时间:',num2str(t2),'秒'));
display(strcat('客户端串行计算时间:',num2str(t1),'秒'));
如果把parfor换成for,并行时间几乎没有变化,这又如何解释呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

希尔伯特

木虫 (正式写手)

引用回帖:
2楼: Originally posted by getengqing at 2015-12-04 13:34:47
计算量太小并行好像看不出来优势

500的计算量已经不小了,每个矩阵单元做一次特征值判定
4楼2015-12-04 18:12:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

希尔伯特

木虫 (正式写手)

引用回帖:
3楼: Originally posted by bluesine at 2015-12-04 13:46:39
你把500换成50000000,再看看效果

你可以试试看,机器能跑几天
5楼2015-12-04 18:13:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 希尔伯特 的主题更新
信息提示
请填处理意见