my code is slower with a parfor loop
Mostrar comentarios más antiguos
Hello,
I ran this code in a computer with 44 workers. However, it's slower than the for version.
template=cell(31,1);
for i=1:31
template{i}=rand(i+24);
end
parfor i=1:5
img=rand(800,1280+i); % It's an other function that gives me the values of img ,here it's just an example
tic
cellfun (@(t) normxcorr2 ( t ,img),template,'UniformOutput',0);
toc
end
As a result, elapsed time in each loop is approximately 18 s . When i change the parfor to for , the time elapsed is approximately 6.7 s in each loop .
Can you explain me why the parfor loop is slower than the for loop?
I checked Matlab documentation and also similar questions on Matlab answers, but it didn't help me.
Note : the total time of execution of the script is faster for the parfor version, i just want to understand why the function cellfun is 3 times slower in parallel version.
Thanks in advance
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!