Thanks for letting us know. You make a great point. Much appreciated from
here that you let us know.
We will have a look on how to integrate the Level 3 LAPACK subroutine in
(DGGSVP). It might get tricky with workspaces. We will see. But we
definitely will have a look. There are many Level 2 LAPACK subroutines
(DGEQPF, DGEQR2, DGERQ2, DORG2R, DORM2R, DORMR2) used by (xGGSVP) and we
really ought to use the Level 3 equivalent subroutines (namely DGEQP3,
DGEQRF, DGERQF, DORGQR, DORMQR, DORMRQ).
On a side note, it is interesting to note that an LAPACK routine (DGGSVP)
is using an LAPACK deprecated routine (DGEQPF) . . . Ouch . . .
At this point, I cannot explain why DGGSVP is using Level 2 LAPACK
subroutines. I think there is no reason for this to be so. We need to read
the code carefully and try to move to Level 3 and we?ll know if this is an
oversight or there is something more.
As far as DGEQPF/DGEQP3 is concerned, DGGSVP initially used DGEQPF. Then
DGEQP3 was integrated in LAPACK by G. Quintana-Ort? and Xiaobai Sun in
1996 or so. The reference paper is: Gregorio Quintana-Ort?, Xiaobai Sun
and Christian H. Bischof, SISC, 1998. Then DGEQPF got deprecated. But we
clearly never updated (DGGSVP). Why is DGGSVP not using DGEQRF, DGERQF,
DORGQR, DORMQR, DORMRQ is a little harder to explain for me. Maybe there
is a reason. We will need to read the code carefully.
We are discovering LAPACK subroutines which are not blocked and could be
blocked ?easily?. Recently (In 3.3 in 2010), we blocked SYTRI and SYTRS.
There were Level 2. Also, the updating in the eigenvector computation is
not yet blocked as well. We get user request and then we act. Some major
code review would be needed to detect these more systematically.
Thanks a lot for letting us know. We will keep you posted.
On 7/7/15, 1:41 PM, "conrads@Domain.Removed"
Dear LAPACK team members,
the current LAPACK (3.5) GSVD solver xGGSVD calls xGGSVP in order to
preprocess the matrices. xGGSVP repeatedly computes QR factorizations
using level 2 BLAS (xGEQPF, xGEQR2). Is the lack of a GSVD solver
utilizing level 3 BLAS operations intentional? Or is it simply due to lack
of time and funding to implement this?
Lapack mailing list