Matrix Q of QR decomposition

Matrix Q of QR decomposition

Hello,
I need to obtain matrix Q of QR decomposition, so I've been using function *geqrf followed by *orgqr and it performs well. The problem is when I use this functions with threaded mkl where i've got good speed up with *geqrf, but no speed up with *orgqr. I've seen user's manual and it seems that *orgqr is not a threaded function; is there any other possibility to obtain the matrix Q with a threaded function??
thanks!!
Jorge

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Are you sure that you need Q in explicit form rather than as a product of Householder vectors? Often, Q is only an intermediate result of no intrinsic interest, and is no longer needed after forming a matrix-vector product such as Q.v .

I need matrix Q because I need the nullspace of a matrix, and the nullspace of a matrix is formed by the last columns of matrix Q of the QR decomposition of this matrix. But the nullspace is not a final result, because then I use nullspace in a matrix-matrix product...so it means that someway I can perform this matrix-matrix multiplication without obtaning matrix Q in explicit form??
Thanks!!! :)

Best Reply

Hi Jorge, you are right, all of these routines (?(or/un)gqr) are not threaded yet.

This issue has been submitted to our internal development tracking
database for further investigation, we will inform you once a new update
becomes available.

Here is a bug tracking number for your reference: 200206100.

--Gennady

Thanks Gennady!

But I have one more question...I have tested function 'dormqr()' being matrix C an identity matrix and as expected, I have same results as using 'dorgqr()' function. As we can see in the manual, 'dormqr()' is a threaded function, so I've got matrix Q faster than with 'dorgqr()', but for my surprise when I run both functions in sequential MKL 'dormqr()' is near 3 times faster than 'dorgqr()'. How is it posible if both functions make the same and 'dormqr()' also make a matrix-matrix multiplication?

thanks!! :)
Jorge

Leave a Comment

Please sign in to add a comment. Not a member? Join today