Page 1 of 1

DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 6:01 am
by fabioaffinito
Hi all,
I probably found a bug when calculating eigenvectors of a symmetric matrix with DSYEV + ESSL on a Power6 IBM cluster.
The bug appears only when the matrix is diagonalized by using the upper half, and when the leading dimension n>200 approx.

I put in attachment the test case where I obtained this bug.

If you have any hints, that would be welcome!

Thanks in advance,

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 9:17 am
by admin
Hi,
Did you try to run the code with netlib LAPACK?
Julie

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 9:28 am
by fabioaffinito
Hi Julie,
sorry, maybe I was unclear.
I tested with netlib lapack-3.2.1 installed with XL compiler.
When I tried with intel mkl everything was fine. So I would think that this bug is related to the interface of lapack with ESSL.

Hope it helps.

F.

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 9:33 am
by admin
Fabio,
Could you try with the latest LAPACK release LAPACK 3.3.0, calling the LAPACK routine without the interface?
LAPACK 3.3.0 is available at http://netlib.org/lapack/#_software
ESSL and MKL are vendors libraries.
If you do not have the bug with LAPACK 3.3.0, you should report the problem directly to the ESSL guys.
Julie

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 9:58 am
by fabioaffinito
Julie,
as far as i know, lapack cannot be linked without including ESSL on power ibm systems. I know this is a proprietary software but I was wondering if the bug was pertinent to ESSL or to lapack libraries.
Anyway, the same problem persists also in the latest release.

Thanks,

F.

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 10:23 am
by admin
I don't think so. To run LAPACK on a machine, you just need a Fortran compiler.
Just download the netlib LAPACK, compile and generate the library.
You have to add the -qfixed flag. Best is to put it on the FORTRAN and LOADER variables in the make.inc:
Code: Select all
FORTRAN = xlf -qfixed
LOADER = xlf -qfixed

After, your program has to be changed to follow the LAPACK interface.
Regarding the BLAS library to use, it would be better to use the Reference BLAS than ESSL.
I currently do not have a IBM machine to test your program.

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 11:34 am
by fabioaffinito
Hi Julie,
I also tried without ESSL: I simply compiled the BLAS functions and I linked them to my code (with the lapack, of course).
Unfortunately, the result didn't change.

Fabio

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 11:47 am
by admin
ok, perfect, could you send me the updated code and your linking sequence.
We will take a look.

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 11:58 am
by fabioaffinito
I compiled all the blas functions in the directory
Code: Select all
/sp6/userinternal/acv0/blas
and the lapack in
Code: Select all
/gpfs/scratch/userinternal/cin0644a/sorella/lapack-3.3.0/lib/
then I compiled using:

Code: Select all
xlf90 mytest2.f90 /sp6/userinternal/acv0/blas/*.o -o mytest.x -L/gpfs/scratch/userinternal/cin0644a/sorella/lapack-3.3.0/lib/ -llapack


If you need access to a Power6 cluster, contact me in private message and I'll try a way to grant you a temporary access.

Thank you,

Fabio

Re: DSYEV + ESSL

PostPosted: Tue Feb 08, 2011 1:06 pm
by admin
Thank you.
I successfully managed to reproduce the problem.
This bug appeared on LAPACK version 3.2 and after. (LAPACK version 3.1.1 works)

This bug is listed bug0075. See http://www.netlib.org/lapack/Errata/ind ... with_dsyev
We are currently looking at it, we will keep in touch.
Julie

Re: DSYEV + ESSL [corrected]

PostPosted: Sun Mar 06, 2011 6:57 pm
by rodney
This bug has now been corrected. A fix is available immediately in the LAPACK svn repository, revision r946. This fix will also be included in the next release of LAPACK.

--Rodney