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
Link Copied
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."
it might be the issue. What version of mkl did you try?
mkl 2020, update 1 (last month release). only this one has the p?geevx available in the scalapack part.
thanks
just to keep the time - could you give us the simplest example which we could compile and run?
thanks, we will play with the example
We reproduced the problem. The issue is escalated. The thread will be updated asap.
thanks
Hello, are there any progress on this subject? thanks.
yes, the fix of the issue is planning to release the next update of mkl.
Francesco, could you check the MKL v.2020 update 2 which available for download and keep us informed with the status.
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.
ok, we will re-checked the case once again and get back to this thread soon.
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/sca...) 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 ...
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.
For more complete information about compiler optimizations, see our Optimization Notice.