-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QRMumps not solving a problem being solved by SuiteSparseQR #103
Comments
@abuttari The above is admittedly a bit unusual because of the large block of zeros at the bottom of A and b, but it should work. Could you let us know if something is going wrong in the interface, in QRMumps itself, or if the problem is between the chair and the monitor? |
that seems to be a rank-deficient matrix, right? unfortunately qrm only handles full-rank matrices unlike SPQR. |
Oh, I was not aware of this limitation. Does it have to have full column rank? It seems the full row rank call above works. |
what's probably happening is that qrm sees that the system is undetermined (5 rows, 13 columns) and thus factorizes the transpose of the matrix. In this case the returned solution is the one of minimum norm whereas, I think, SPQR returns just one of the many. Obviously you can do the same with SPQR (i.e., ask it to factoriza A' instead of A) |
Is pivoting difficult to implement or is it a performance killer? |
pivoting in QR is harder to implement than in LU already on dense matrices because it prevents the use of BLAS3. On sparse ones it's even worse because it leads to higher fill-il. There have been a few attempts long time ago but did not lead to anything usable. SPQR uses a variant of the Heath method: when a small coefficient is found on the diagonal of R during the factorization, the corresponding column is skipped. This leads to a R factor which is not triangular but somewhat staircase-triangular. In qr_mumps this method is hard to implement because the staircase-triangular structure clashes with the 2D blocking used for parallelization. I have a few ideas but really lack the time to work on them... |
Taking that specific problem :
QRMumps is not able to find a solution whereas SuiteSparseQR can:
NB : Lines above 5 being all empty in
A
andb
, this works:The text was updated successfully, but these errors were encountered: