Matlab并行写入和读取

时间:2015-06-17 23:07:09

标签: matlab parallel-processing

我有一个parfor循环,但每个循环从公共源数组UMTemp读取,并写入公共单元PMatrix。这会导致瓶颈问题吗?我怎么能避免这种情况?感谢。

parfor i = 1:um_Elements
    for j = 1:Temp_Elements
        ind = (i-1)*Temp_Elements + j;
        u = UM(i);
        SS();
        tem = Temp(j);
        PMatrix{i,j}(1) = u;
        PMatrix{i,j}(2) = tem;
    end
end

此外,当使用两名工作人员时,性能提高了2.但是当使用16名工作人员时,性能变化不大。可能有什么不对?

1 个答案:

答案 0 :(得分:0)

在这种情况下,UMTempPMatrix都是sliced个变量。这意味着parfor机器可以看到这些变量在工作人员的独立部分(称为"切片")中进行操作,因此只有所需部分从客户端传输到工作人员。

至于为什么增加更多的工作人员并没有带来额外的速度改进 - 你可能只是在循环体内做了一些计算密集的事情来克服开销的问题。传输数据。