Dear all,
I am not sure if this is technically a bug. The routine PZHEGVX (scalapack 2.0.2) fails in a few cases.
The routine is used to diagonalize a 4038x4038 matrix. The call (with some relevant definitions) is:
abstol = 2 * pdlamch(ctxt,'S')
n = 4038
ir2 = 4038
ir1 = variable (I am interested in the largest eigenvalues.)
call pzhegvx(1,'V','I','U',n,mat1,1,1,desc,olap1,1,1,desc,r1,r2,ir1,ir2,abstol,m,nz,eval,ORFAC,evec1,1,1,desc,work,lwork,rwork,lrwork,iwork,liwork,ifail,iclustr,gap,info)
(r1 and r2 are immaterial because third argument is 'I'.)
Run with 20 processes and ORFAC=1d-8:
* PZHEGVX fails with info=2 for ir1=1, 2, 3, 4, 5, and 6
* PZHEGVX works for ir1>6
Run with 16 processes and ORFAC=1d-8:
* PZHEGVX works.
Run with 20 processes and ORFAC=0:
* PZHEGVX works.
Run with LAPACK:
* ZHEGVX works.
Blacs grid: 4*5 for 20 processes and 4*4 for 16 processes.
So, in summary, it works for 16 processes but not for 20 processes. (And with ORFAC=0 it works always.)
Thank you in advance.
Best wishes
Christoph