arrays of reduction variables
2 ビュー (過去 30 日間)
古いコメントを表示
In parallel computing toolbox, I want to create an array of reduction variables. Is it possible?
m=3; n=5;
b=zeros(m,2);
parfor i=1:n
a=[i i+1];
for j=1:m
b(j,:)=b(j,:)+j*a;
end
end
I get this result Error: The variable b in a parfor cannot be classified. See Parallel for Loops in MATLAB, "Overview".
Is there a way to make this work?
Matt
0 件のコメント
採用された回答
Edric Ellis
2016 年 3 月 3 日
編集済み: Edric Ellis
2016 年 3 月 3 日
In this case, parfor doesn't understand the fact that you're performing independent reductions on the rows of b. You can convince it by performing the update to the whole of b all at once, like so:
m=3; n=5;
b=zeros(m,2);
parfor i=1:n
a=[i i+1];
btmp = zeros(m,2);
for j=1:m
btmp(j,:) = j*a;
end
b = b + btmp;
end
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!