Matlab 并行处理需要特别处理

  最近用到matlab做测试和数据处理,想到是否可以多线程处理问题,于是测试了一matlab的并行处理效果。

  测试环境,联想E480 , 8250U,4核8线程@1.6G~3.4G,内存8G@DDR24000,256G SSD,winddows 10, matlab 2014a .

  借用一个大家做过的测试程序:

tic
for i=1:10000
    for j=1:10000
        a(i,j)=i*j;
    end
end
toc

  这个消耗间大概600S;

 修改为并行4核效果有明显提高,需要大概60S;

matlabpool local 4; 
%parallel program 

tic
parfor i=1:10000
    for j=1:10000
        x(i,j)=i*j;
    end
end
toc
matlabpool close 

  再做了一点修改,在执行计算前,增加了内存空间预分配处理:

x=zeros(10000);
tic
for i=1:10000
    for j=1:10000
        x(i,j)=i*j;
    end
end
toc

    这个计算只需要大概5S打开资源管理观察CPU计算过程中的工作状况,发现8个core都在参与运算。

    通过这个测试发现,我们不需要考虑是否多核分配,系统已经处理得很好了。内存分配较耗费时间,我们优化好比较花时间的这部分code就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值