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

Performance 使用MATLAB中的并行计算工具箱,并行代码比顺序代码花费的时间更长。为什么?,performance,matlab,parallel-processing,multicore,core,Performance,Matlab,Parallel Processing,Multicore,Core,我正在使用MATLAB。我刚刚使用MATLAB中的并行计算工具箱。我有核心i3处理器,MatlabR2011A,2GB内存,320硬盘 为了计算速度,我只编写了以下代码,发现并行代码比顺序代码花费的时间更长 第一个代码需要0.039763秒 第二个代码需要0.379056秒 第1代码: tic MM = magic(5); MN = magic(5); ML = magic(5); MP = magic(5); MK = magic(5); MM MN ML MP MK toc 第二代码:

我正在使用MATLAB。我刚刚使用MATLAB中的并行计算工具箱。我有核心i3处理器,MatlabR2011A,2GB内存,320硬盘

为了计算速度,我只编写了以下代码,发现并行代码比顺序代码花费的时间更长

第一个代码需要0.039763秒

第二个代码需要0.379056秒


第1代码:

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

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

正如Dan在评论中提到的,问题显然太小了,并行化没有什么好处。例如,将您创建的
magic
矩阵的大小从5增加到5000,已经显示出明显的改进。也就是说,与一个矩阵的计算时间相比,规模越大,并行化的开销(几乎)可以忽略不计

正如Dan在评论中提到的,问题显然太小了,并行化没有什么好处。例如,将您创建的
magic
矩阵的大小从5增加到5000,已经显示出明显的改进。也就是说,与一个矩阵的计算时间相比,规模越大,并行化的开销(几乎)可以忽略不计

试着解决一个更大的问题。对于这样一个小规模的问题,并行化的开销可能比加速成本更高?此外,尝试为工人使用不同的操作。Matlab可以加速几个相同的顺序运算的计算。试着解决一个更大的问题。对于这样一个小规模的问题,并行化的开销可能比加速成本更高?此外,尝试为工人使用不同的操作。Matlab可以为几个相同的顺序运算加速计算。谢谢,但我已经尝试过创建4000000个矩阵,但并没有给出期望的结果。请给我推荐合适的代码。谢谢,但是我已经尝试过创建4000000个矩阵,但是没有得到想要的结果。请给我推荐合适的代码。