我正在尝试使用Matlab并行计算工具箱。我的电脑有6名工人'或核心。因此,我希望我的代码运行速度大约是6倍(即速度增加约600%)。然而,当我实际操作时间时,我发现速度增加了大约40%。
这是正常的,还是我做错了什么?
这是我的代码:
N=5000;
%%Parrelel
pp=parpool(6)
ts=tic;
parfor i=1:12
q=eye(N); q^-1;
end
disp(['Time for Parrelel Computation: ' num2str(toc(ts),3) 's']);
delete(pp);
%Serial
ts=tic;
for i=1:12
q=eye(N); q^-1;
end
disp(['Time for Serial Computation: ' num2str(toc(ts),3) 's']);
读数是:
Parrelel计算的时间:24.6秒
串行计算时间:35.9秒
我希望parrelel计算大约是35 / 6~ = 6s,而不是24s
有什么建议吗?
由于 罗马