我正在使用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
我想学习并行计算工具箱。
答案 0 :(得分:1)
正如Dan在评论中提到的那样,问题显然太小,无法使并行化变得有益。例如,将您创建的magic
矩阵的大小从5增加到5000,已经显示出明显的改进。也就是说,对于较大的尺寸,与一个矩阵的计算时间相比,并行化的开销变得(几乎)可忽略不计。