使用MATLAB中的并行计算工具箱,并行代码比顺序代码花费更长的时间。为什么?

时间:2013-04-24 07:34:26

标签: performance matlab parallel-processing multicore core

我正在使用MATLAB。我是MATLAB中并行计算工具箱的新手。我有核心i3处理器,MATLAB R2011a,2 GB RAM,320硬盘。

为了计算加速,我刚写了下面的代码,发现并行代码比顺序代码需要更长的时间。

第一个代码正在 0.039763秒

第二段代码 0.379056秒


第一个代码:

tic
MM = magic(5);
MN = magic(5);
ML = magic(5);
MP = magic(5);
MK = magic(5);
MM
MN
ML
MP
MK
toc

第二代码:

matlabpool open local 4

tic
spmd  % Uses all 3 workers
    MM = magic(5); % MM is a variable on each lab
end
MM{1}
MM{2}
MM{3}
MM{4}
toc
matlabpool close

我想学习并行计算工具箱。

1 个答案:

答案 0 :(得分:1)

正如Dan在评论中提到的那样,问题显然太小,无法使并行化变得有益。例如,将您创建的magic矩阵的大小从5增加到5000,已经显示出明显的改进。也就是说,对于较大的尺寸,与一个矩阵的计算时间相比,并行化的开销变得(几乎)可忽略不计。