Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

mkl error in p?geevx - fortran

sottile__francesco
2,012 Views

I'm trying the newly introduced pcgeevx (complex non-hermitian problem - single precision), and I obtain "Intel MKL ERROR: Parameter 14 was incorrect on entry to PCGEEVX." I do not understand how come (the 14th should be an integer and a reference an integer).

Here is (in my opinion) the concerned part

complex :: eigenval(n)
complex :: eigenvec(lda,ldb), matrix(lda,ldb)
integer :: desca(9)
integer :: lwork, lrwork, liwork, idum
real :: dum
real, allocatable :: rwork(:)
complex, allocatable :: work(:)
complex :: cdum
integer, allocatable :: iwork(:)
 

lwork = -1   ! this is just the first call to obtain the minimum work size requirement
allocate(work(1))
allocate(rwork(n))
allocate(iwork(n))
call pcgeevx('B', 'N', 'V', 'N', n, matrix, desca, eigenval, cdum, idum, eigenvec, desca, &
              idum, idum, rwork, dum, rwork, dum, work, lwork, info)

 

I would like to stress that the if I use the hermitian equivalent  pcheevx or the non parallel version cgeev everything works like a charm. 

Is it possible that I didn't get right the arguments in pcgeevx?

thanks in advance

0 Kudos
15 Replies
sottile__francesco
2,012 Views

I have also tried, instead of complex eigenval, to use real and imaginary part arrays, as in

call pcgeevx('B', 'N', 'V', 'N', n, matrix, desca, wr, wi, cdum, idum, eigenvec, desca, &
              idum, idum, rwork, dum, rwork, dum, work, lwork, info)

in which case I obtain  "Intel MKL ERROR: Parameter 15 was incorrect on entry to PCGEEVX."

0 Kudos
Gennady_F_Intel
Moderator
2,012 Views

it might be the issue. What version of mkl did you try?

0 Kudos
sottile__francesco
2,012 Views

mkl 2020, update 1 (last month release). only this one has the p?geevx available in the scalapack part.

thanks

0 Kudos
Gennady_F_Intel
Moderator
2,012 Views

just to keep the time - could you give us the simplest example which we could compile and run?

0 Kudos
sottile__francesco
2,012 Views

The attached code could be consider as a minimum test. I compile it as

mpif90  -O2  min_test.F90  -L/${MKLROOT}/lib/intel64/ -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs
_openmpi_lp64 -lpthread

 

many thanks

0 Kudos
Gennady_F_Intel
Moderator
2,012 Views

thanks, we will play with the example 

0 Kudos
Gennady_F_Intel
Moderator
2,012 Views

We reproduced the problem. The issue is escalated. The thread will be updated asap.

thanks

0 Kudos
sottile__francesco
2,012 Views

Hello, are there any progress on this subject? thanks.

0 Kudos
Gennady_F_Intel
Moderator
2,012 Views

yes, the fix of the issue is planning to release the next update of mkl.

0 Kudos
Gennady_F_Intel
Moderator
1,985 Views

Francesco, could you check the MKL v.2020 update 2 which available for download and keep us informed with the status. 

0 Kudos
sottile__francesco
1,936 Views

Hello,

I have checked update 2, but the problem still seems to be there. I have still doubts about the call pgeevx for the error message says "Intel MKL ERROR: Parameter 15 was incorrect on entry to PCGEEVX." as if I make a mistake in the arguments. But I do not understand where (if it is).

thanks, f.

0 Kudos
Gennady_F_Intel
Moderator
1,929 Views

ok, we will re-checked the case once again and get back to this thread soon.


0 Kudos
Gennady_F_Intel
Moderator
1,923 Views

The original test contains the error in input parameters. Namely, using nblk to 2 is not correct. According to the documentation (https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/scalapack-routines/scalapack-driver-routines/p-geevx.html) the minimal value of nblk is 6 (see the section "Current Notes and Restrictions"):

The current implementation of p?lahqr requires the distributed block size to be square and at least six (6); unlike simpler codes like LU, this algorithm is extremely sensitive to block size."

The modified example min_test_modv1.F90 ( attached) shows no errors.

Here is the output:

mpiexec -n 1 ./a.out

 |- BLACS and DESC initialized

 |- Block cyclic mat with dim (and proc)   12  12   0

 |- Reference matrix diagonalized sequentially, using lapack

Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications                                                                                         

 liwork         184        384

 info           0          0

 info           0          0

 |- diagonalised using SCALAPACK ...



0 Kudos
Gennady_F_Intel
Moderator
1,921 Views

the modified test is attached

0 Kudos
Gennady_F_Intel
Moderator
1,916 Views

This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.


0 Kudos
Reply