In parallel processing, are multiple workers used for anything else than parfor loops?

3 visualizzazioni (ultimi 30 giorni)
When using the parallel computing toolbox, are parfor loops required for parallel processing? I plan to use parfor loops, but the most expensive part of my program is SVD, which is performed during each iteration of a loop. Will MATLAB break up the SVD into multiple workers?

Risposta accettata

Shashank Prasanna
Shashank Prasanna il 2 Ago 2013
Modificato: Shashank Prasanna il 2 Ago 2013
Using SVD under a parfor will likely slow the performance of SVD. SVD is inherently multithreaded and make use of multiply cores calling it as it is. Here are a list of function that are inherently multithreaded:
To comment further on how we could speed up your code, we may need to see more of what you have within the parfor loop.
  5 Commenti
Shashank Prasanna
Shashank Prasanna il 4 Ago 2013
Modificato: Shashank Prasanna il 4 Ago 2013
SVD is already multithreaded. It does make use of multiple cores.
Here is the difference between multicore (like svd) and multiprocessor (using PCT):
Clare
Clare il 4 Ago 2013
Modificato: Clare il 6 Ago 2013
EDIT: Never mind, I figured it out!
Ok, thanks for the response and link. I asked because I have experimented on my laptop, which has 4 cores and 8 threads. Yet a labor-intensive SVD computation hovers around 200% of CPU usage, suggesting it is using 2 threads in one core only. Any idea why this may be happening, and how to change it? Thanks again for your help.
p.s. On my laptop I have version r2011a. I tried changing the maximum # of threads to 8 using the "LASTN = maxNumCompThreads(8)" command. No luck.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Linear Algebra in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by