What happens when we call a function containing a parfor loop within another parfor loop?
6 ビュー (過去 30 日間)
古いコメントを表示
Consider
answer = zeros(1,5);
parfor x1 = 1:5
answer(x1) = fun();
end
function output = fun()
R = zeros(1,10)
parfor x2 = 1:10
R(x2) = x2;
end
output = sum(R(:));
end
Is the parallelization applied only to 'x1', or is it applied to both 'x1' and 'x2'?
0 件のコメント
採用された回答
Torsten
2024 年 2 月 6 日
編集済み: Torsten
2024 年 2 月 6 日
This page has the answer to your question:
From the page:
You can also use a function that uses parfor and embed it in a parfor-loop. Parallelization occurs only at the outer level. In the following example, call a function MyFun.m inside the outer parfor-loop. The inner parfor-loop embedded in MyFun.m runs sequentially, not in parallel.
parfor i = 1:10
MyFun(i)
end
function MyFun(i)
parfor j = 1:5
...
end
end
Tip
Nested parfor-loops generally give you no computational benefit.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Parallel for-Loops (parfor) についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!