MATLAB的parfor的简单例子

时间:2014-11-01 14:32:24

标签: performance parallel-processing matlab

我正在尝试使用parfor来加速某些算法,但这只会减慢它们的速度。我在互联网上发现了一些关于这个问题的资源,但我找不到问题的答案。

我有以下代码:

n = 2^14;
v = randn(n, 1);

tic;
for i = 1:n
    v(i) = v(i) + 1;
toc
  

经过的时间是0.000200秒。

matlabpool

tic;
parfor i = 1:n
     v(i) = v(i) + 1;
end
toc

matlabpool close
  

经过的时间是0.069568秒。

为什么会这样?如何使用parfor来加速这个简单的MATLAB示例?

谢谢。

1 个答案:

答案 0 :(得分:3)

您的测试示例太小/太简单,因此相对于执行计算所需的时间,为matlabpool创建其他进程的开销很大。尝试一个至少持续几十秒的计算。