【发布时间】:2014-08-29 05:08:58
【问题描述】:
为了检查 matlab 中并行处理的工作原理,我尝试了以下代码并测量了执行时间。但我发现并行处理代码比普通代码花费更多时间,这是出乎意料的。我在哪里做错了吗?
并行处理代码
function t = parl()
matlabpool('open',2);
tic;
A = 5:10000000;
parfor i = 1:length(A)
A(i) = 3*A(i) + (A(i)/5);
A(i) = 0.456*A(i) + (A(i)/45);
end
tic;
matlabpool('close');
t = toc;
end
并行处理的结果
>> parl Starting matlabpool using the 'local' profile ... connected to 2 workers. Sending a stop signal to all the workers ... stopped.
ans =
3.3332
function t = parl()
tic;
A = 5:10000000;
for i = 1:length(A)
A(i) = 3*A(i) + (A(i)/5);
A(i) = 0.456*A(i) + (A(i)/45);
end
tic;
t = toc;
end
没有并行处理代码的结果
>> parl
ans =
2.8737e-05
【问题讨论】:
标签: performance matlab parallel-processing