如何让两个嵌套的Parfors在Matlab中迭代两个巨大的数组?

时间:2018-01-21 21:53:16

标签: arrays matlab parallel-processing parfor

考虑两个数组A=Huge_Arrau_oneB=Huge_array_two,如何更改以下代码以在Matlab中工作(因为Matlab不接受嵌套循环)。

parfor (i,j) in all_combinations_of_A_and_B_indices

  A_in_this_worker = A(i);

  B_in_this_worker = B(j);

  ....
end

请注意,我不希望每个工作人员都拥有所有A和B阵列,因为每个工人只需要一小部分。 之前已经讨论过这个问题,用于索引2d数组的两个维度(使用sub2ind和ind2sub函数),但奇怪的是,我从未见过这个版本我正在努力解决的问题。 事实上,我希望每个组合都有一个单独的工作人员,我需要访问每个工作人员的A和B的一部分。

1 个答案:

答案 0 :(得分:0)

method Mathworks suggests是围绕for循环使用parfor循环 您可能希望这样做:

parfor i = 1:length(Array_A)
    for j = 1:length(Array_B)
        % your code here
    end
end

基本上,确保将外循环作为parfor循环运行