Broadcast Variable Warning in MATLAB Parallel Computing Toolbox

9 ビュー (過去 30 日間)
Kareem Elgindy
Kareem Elgindy 2022 年 4 月 15 日
コメント済み: Kareem Elgindy 2022 年 5 月 16 日
When I ran a MATLAB code using MATLAB Parallel Computing Toolbox, I got messages like:
The entire array or structure 'a' is a broadcast variable. This might result in unnecessary communication overhead.
The entire array or structure 'b' is a broadcast variable. This might result in unnecessary communication overhead.
The entire array or structure 'L' is a broadcast variable. This might result in unnecessary communication overhead.
I then got lost. The code is still running though, but I don't know what to do exactly to avoid the messages above. Below is a description of the main part of my code:
a = (5:5:100)'; b = (-0.4:0.1:2)'; L = (0.25:0.25:10)'; la = length(a); lb = length(b); lL = length(L);
parfor jj = 1:2
err1 = zeros(la,lb,lL);
for i = 1:la
if jj == 1, bla bla bla; else, bla bla bla; end
for j = 1:lb
for k = 1:lL
err1(i,j,k) = methods(a(i),b(j),L(k));
end
end
end
end

採用された回答

Matt J
Matt J 2022 年 4 月 15 日
編集済み: Matt J 2022 年 4 月 15 日
In this case, the warnings can probably be ignored because a, b, and L are very small.
However, I don't really understand the parallelization stratgy, since the outer parfor loop is very short, and you seem to be doing almost nothing with the loop variable jj. If the intensive work is being done by methods(), I would think you would want to paralleilize over (i,j,k).
  9 件のコメント
Kareem Elgindy
Kareem Elgindy 2022 年 5 月 16 日
@Matt J You are right. The size is already predefined. Thanks.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Find more on Loops and Conditional Statements in Help Center and File Exchange

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by