Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- error in dormqr switching from dgeqrf to dgeqp3?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

Hello,

Given that both functions have a very similar interface and produce the same result I was hoping to see some performance gain but instead I got the error "LAPACKE_dormqr failed with info = -1" trying to compute the Q^T*c with dormqr using the output generated by dgeqp3. Would this be a known bug of the MKL version composerxe-2011.4.184 I have? Or is there a slightly different workflow for this other QR dgeqp3 variant?

Thanks in advance,

Best regards,

Giovanni

Azua_Garcia__Giovann

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-18-2012
06:44 PM

12 Views

error in dormqr switching from dgeqrf to dgeqp3?

Given that both functions have a very similar interface and produce the same result I was hoping to see some performance gain but instead I got the error "LAPACKE_dormqr failed with info = -1" trying to compute the Q^T*c with dormqr using the output generated by dgeqp3. Would this be a known bug of the MKL version composerxe-2011.4.184 I have? Or is there a slightly different workflow for this other QR dgeqp3 variant?

Thanks in advance,

Best regards,

Giovanni

4 Replies

Highlighted
##

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-18-2012
09:03 PM

12 Views

this is an unknow behavior, please give the example for checking this issue.

Highlighted
##

HelloGiovanni,

Nadezhda_M_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-19-2012
12:27 AM

12 Views

In the manual is the following description for ?ormqr function

Multiplies a real matrix by the orthogonal matrixQ of the QR factorization formed by ?geqrf or?geqpf.

This function works with matrices formed in special way.

You try to use dgeqp3 function instead

Computes the QR factorization of a general m-by-nmatrix with column pivoting using level 3 BLAS.

You should keep in mind that this function use pivoting and as a result it produces matrix Q formed in another way.

However a message"LAPACKE_dormqr failed with info = -1" is quite strange. It says that the problem is in a matrix order parameter.

Can you give more information? May be a part of code.

Highlighted
##

Hello Nadezhda,

I know but if you read the documentation of dgeqp3 specifically the "Application Notes" below of dgeqp3 you will find:

Application Notes

To solve a set of least squares problems minimizing ||A*x - b||2 for all columns b of a given matrix B, you

can call the following:

- ?geqp3 (this routine) to factorize A*P = Q*R;

- ormqr to compute C = QT*B (for real matrices);

- unmqr to compute C = QH*B (for complex matrices);

- trsm (a BLAS routine) to solve R*X = C.

So basically should be the same workflow as dgeqrf. However a friend of mine benchmarked dgeqrf vs dgeqp3 in front of me now using python and we can see dgeqp3 performing orders of magnitude slower than dgeqrf so never mind.

Best regards,

Giovanni

Azua_Garcia__Giovann

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-19-2012
02:07 AM

12 Views

I know but if you read the documentation of dgeqp3 specifically the "Application Notes" below of dgeqp3 you will find:

Application Notes

To solve a set of least squares problems minimizing ||A*x - b||2 for all columns b of a given matrix B, you

can call the following:

- ?geqp3 (this routine) to factorize A*P = Q*R;

- ormqr to compute C = QT*B (for real matrices);

- unmqr to compute C = QH*B (for complex matrices);

- trsm (a BLAS routine) to solve R*X = C.

So basically should be the same workflow as dgeqrf. However a friend of mine benchmarked dgeqrf vs dgeqp3 in front of me now using python and we can see dgeqp3 performing orders of magnitude slower than dgeqrf so never mind.

Best regards,

Giovanni

Highlighted
##

Ok, you are right. This is not the issue. Please provide details of your problems with LAPACKE_dormqr

Nadezhda_M_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-19-2012
02:59 AM

12 Views

For more complete information about compiler optimizations, see our Optimization Notice.