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

3 次查看(过去 30 天)
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?

采纳的回答

Shashank Prasanna
编辑:Shashank Prasanna 2013-8-2
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 个评论
Shashank Prasanna
编辑:Shashank Prasanna 2013-8-4
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 2013-8-4
编辑:Clare 2013-8-6
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by