What happens when we call a function containing a parfor loop within another parfor loop?
조회 수: 2 (최근 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!