What happens when we call a function containing a parfor loop within another parfor loop?

7 visualizaciones (últimos 30 días)
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'?

Respuesta aceptada

Torsten
Torsten el 6 de Feb. de 2024
Editada: Torsten el 6 de Feb. de 2024
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.

Más respuestas (0)

Categorías

Más información sobre Parallel for-Loops (parfor) en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by