Page 1 of 1

xGGEV3 status

PostPosted: Thu Sep 10, 2015 8:59 am
by int128
What is the status of the recent xGGEV3 routines?

From my tests both (Z,D) compute eigenvectors and eigenvalues identical to xGGEV.

But when only eigenvalues are requested, and matrix size > 32, xGGEV3 always returns 32-zeros in BETA array.
I guess there is something with (first, last?) block processing.

Re: xGGEV3 status

PostPosted: Thu Sep 10, 2015 9:30 pm
by admin
Dear Pavel,
We logged your issue as LAPACK bug 0136
See http://www.netlib.org/lapack/Errata/index2.html
Thank you for reporting it, we will take a look at it very shortly.

Re: xGGEV3 status

PostPosted: Thu Sep 10, 2015 9:53 pm
by int128
Here is more detailed info on the bug.

Actually all three arrays ALPHAR, ALPHAI and BETA have inconsistent data when N>32.

Please take a look on attached files. Each file has log for running DGGEV3 in two modes - (a) eigenvalues only, (b) complete eigenpairs.
In the first case DGGEV3 generates corrupted ALPHAR, ALPHAI and BETA (for N>32).

Same happens in ZGGEV3.

xggev3_n32.txt
N = 32 (good)
(7.26 KiB) Downloaded 41 times

xggev3_n40.txt
N = 40 (inconsistent)
(9.06 KiB) Downloaded 43 times

xggev3_n64.txt
N = 64 (inconsistent)
(14.45 KiB) Downloaded 37 times

Re: xGGEV3 status

PostPosted: Thu Oct 22, 2015 12:29 am
by admin
We just committed a fix to xGGEV3 on revision 1599
Could you please check that it fixes the issue
Thank you
Julie

Re: xGGEV3 status

PostPosted: Mon Nov 16, 2015 8:33 am
by int128
Dear Julie,

Thank you very much for the update. The xGGEV3 routines work fine after the fix.
(Sorry for delay in reply - just saw your post).

Re: xGGEV3 status

PostPosted: Mon Nov 16, 2015 10:14 am
by int128
There is a small issue with ZGGEV3, when it computes workspace size:

Code: Select all
#341     CALL ZHGEQZ( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
     $                   ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1,
     $                   WORK, IERR)

#349            CALL ZHGEQZ( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
     $                   ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1,
     $                   WORK, IERR)


WORK is the complex buffer, but ZHGEQZ needs real buffer as penultimate parameter.

Probably it should be RWORK instead of WORK.

Re: xGGEV3 status

PostPosted: Mon Nov 16, 2015 11:18 am
by Julien Langou
Thanks Pavel. Corrected in SVN. Julien.

Re: xGGEV3 status

PostPosted: Mon Nov 16, 2015 11:27 am
by Julien Langou
Also, speaking for xGGEV3, please note that the interface is a prototype. We do not know but we expect that the workspace might change. There are two goals. (1) was to have Level 3 BLAS Hessenberg-triangular reduction routine (contribution from Kressner and Shao, LAPACK 3.6.0), and (2) is to introduce the QZ algorithm with the small bulge multi-shift QZ algorithm together with aggressive early deflation as based on the work of Kressner et al. We do not have any progress on (2). But whenever we have (2), we are thinking to have this available from xGGEV3. It is not clear what interface change we will need. We will see in due time. We do not have a timeline for (2). Best wishes, Julien.

Re: xGGEV3 status

PostPosted: Mon Nov 16, 2015 11:40 am
by int128
Julien, thank you for update on multi-shift QZ.
Currently xGGEV3 runs faster than xGGEV by up to 20% in my applications (with well-tuned parameters in IPARMQ).

I think, multi-shift QZ would reduce timings by x2-3 times more. Without any doubts, this would be a major improvement for dense generalized eigen-problems in years (if not decades).
Looking forward to it (interface doesn't matter much)....

Thank you for your great work!