小编amm*_*mar的帖子

在MATLAB中并行执行

我是MATLAB的新手,我只是尝试执行一个并行的小程序,但问题是并行执行需要比串行执行更多的时间?


close all
clear all
clc

a= rand(1e6,1);
b= rand(1e6,1);
c= zeros(size(a));
d= ones(size(c));
e= zeros(size(d));

tic
tstart=tic;
for i=1:length(a)
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
end
t_normal_for=toc(tstart)

tstart=tic;
parfor i=1:length(a)
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    c(i)=a(i)+b(i);
    d(i)=c(i)+b(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
    e(i)=d(i)+c(i)*a(i)+b(i)/a(i)+b(i)*a(i)+b(i);
end
t_parfor=toc(tstart)

***************************************
t_normal_for =

    0.3860


t_parfor =

    2.8403
Run Code Online (Sandbox Code Playgroud)

谁能帮忙!事实上,我的计算机中有4名工人,MATLAB的版本是R2014a.请问另一个问题,我可以向计算机中的每个工作人员发送相同的功能吗?

提前谢谢Ammar

parallel-processing matlab execution

0
推荐指数
1
解决办法
71
查看次数

标签 统计

execution ×1

matlab ×1

parallel-processing ×1