Does QR Use Intel Thread Building Blocks?

3 views (last 30 days)
Stuart
Stuart on 18 Jul 2013
Does MATLAB 2012b or a later version use Intel’s Threading Building Blocks (TBB) with its QR algorithm to take advantage of a multicore CPU? If not, is there a reason why? MATLAB's QR algorithm relies on the SuiteSparseQR code, which has the capability to use TBB. But the SuiteSparseQR web page says that MATLAB 2012a QR does not use Intel’s TBB: http://www.cise.ufl.edu/research/sparse/SPQR/. According to MATLAB documentation, MATLAB’s QR does use some form of multithreading on a multicore CPU: http://www.mathworks.com/help/matlab/math/factorizations.html; see the bottom on “Using Multithreaded Computation for Factorization.”

Answers (1)

Jan
Jan on 19 Jul 2013
Matlab is a very conservative program and the compatibility is an important part of the design. If Matlab 2012b replies a (slightly) other result on a Quad-Core than 2011b on a Single-Core user get nervous.
There have been several difficulties when Multi-Threading has been enabled for a specific command. Trivial examples:
  • SUM in 2009a uses multiple threads, when the input length is >= 89000, but unfortunately the results have been accumulated in the order the threads are finished, such that the result can differ by rounding effects from run to run. In newer versions SUM accumulates the result reproducible again.
  • FILTER is multi-threaded, when more than 16 channels are processed. But of course 2 thread would be great to filter a [1e9 x 2] matrix also.
If any tool has a valid and validated multi-threading implementation already, there will be good reasons not to add this to Matlab directly. The user does have the chance to create a C-Mex function to call the faster version and this is a very good idea in many cases. But the total community profits in general from the conservative strategy.
  1 Comment
Stuart
Stuart on 22 Jul 2013
MATLAB's QR does use BLAS threading. The question is whether QR also uses Intel TBB threading.

Sign in to comment.

Categories

Find more on Execution Speed in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!