my code is slower with a parfor loop

3 visualizaciones (últimos 30 días)
emar
emar el 21 de Abr. de 2017
Comentada: Walter Roberson el 21 de Abr. de 2017
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

Walter Roberson
Walter Roberson el 21 de Abr. de 2017
normxcorr2 for large enough matrices probably ends up invoking the high performance libraries such as LINPACK or BLAS. Those high performance libraries are threaded and will use all available threads, even if you do not have the Parallel Computing Toolbox. When you use parfor then unless you are using R2017a or later and have specifically set the number of threads, then your parfor worker will only have a single thread available to it. That leads to the worker taking longer for that task.
  3 comentarios
emar
emar el 21 de Abr. de 2017
But you are right, fft2 is calculated with multicores ! thank you for your explanation
Walter Roberson
Walter Roberson el 21 de Abr. de 2017
Remember to account for communications overhead.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Parallel Computing Fundamentals en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by