[CPMD-list] Problem with FFT_ESSL in CPMD353 on IBM p690
Bernd Kallies
kallies at zib.de
Tue Dec 10 00:28:03 CET 2002
Dear all,
I tried to compile/use CPMD 3.5.3 on an IBM p690 (Power4, AIX 5.1L,
xlf8.1). I linked with my own LAPACK_CCI and IBM's ESSL. The
preprocessor directives I used were -D__IBM -DESSL -DPARALLEL
-DMP_LIBRARY=__MPI -DFFT_ESSL. Compiler flags for mpxlf_r were -O3
-qstrict -qmaxmem=-1 -qxlf77=leadzero -qintsize=4 -qrealsize=4 -qdpc=e
-qarch=auto -qtune=auto
I ran into problems when gradients of the density have to be calculated.
Problems became clearly visible in geometry optimizations, when ZHEEV of
LAPACK was entered with a matrix that contained NaNQ only, which caused
crazy LANCZOS iterations with always the same results:
================================================================
== FORCES INITIALIZATION ==
================================================================
EWALD SUM IN REAL SPACE OVER 9* 9* 9 CELLS
<< 1:10<<<<<<<<<<<< LANCZOS DIAGONALIZATION <<<<<<<<<<<<<<<<<<<<
>> TIME FOR INITIAL SUBSPACE DIAGONALIZATION: 2.26
>> CYCLE NCONV B2MAX B2MIN #HPSI TIME
1 0 0.000E+00 1.000E+30 8.00 19.53
2 0 0.000E+00 1.000E+30 7.00 18.62
3 0 0.000E+00 1.000E+30 7.00 17.99
... forever ...
Problems disappear when I replace -DFFT_ESSL by -DFFT_DEFAULT.
As far as I figured out, the problems begin already after the first call
of INVFFT during the initialization of a run. An inspection of the in-
and output of the first call of MLTFFT from INVFFT showed that it seems
to return another and probably wrong FFT for the same input, when DCFT
from IBM's ESSL is used.
An example (ldax=81,lday=3281,n=80,m=3281,naux1=naux2=50000),
result B at the end of the first call of MLTFFT:
i j B(i,j) with -DFFT_DEFAULT B(i,j) with -DFFT_ESSL
( real imag ) ( real imag )
--------------------------------------------------------------
...
473 1 ( .10164E+00 .70343E-17) ( .10164E+00 .70343E-17)
473 2 ( -.10241E+00 .15902E-16) ( -.10241E+00 -.70343E-17)
473 3 ( .10471E+00 -.16883E-16) ( .10471E+00 .70343E-17)
473 4 ( -.10865E+00 -.19796E-17) ( -.10865E+00 -.70343E-17)
473 5 ( .11441E+00 -.98143E-17) ( .11441E+00 .70343E-17)
473 6 ( -.12201E+00 -.54733E-17) ( -.12201E+00 -.70343E-17)
473 7 ( .13087E+00 -.13232E-16) ( .13087E+00 .70343E-17)
473 8 ( -.13966E+00 .19261E-16) ( -.13966E+00 -.70343E-17)
473 9 ( .14670E+00 -.22676E-17) ( .14670E+00 .70343E-17)
473 10 ( -.15089E+00 .14765E-16) ( -.15089E+00 -.70343E-17)
473 11 ( .15238E+00 .70343E-17) ( .15238E+00 .70343E-17)
473 12 ( -.15239E+00 .12665E-16) ( -.15239E+00 -.70343E-17)
...
--------------------------------------------------------------
I'm not sure if this is caused by a bug in IBM's ESSL, or by a bug in
CPMD regarding use of IBM's ESSL. Since CPMD is copyrighted by IBM, I
believe the CPMD mailing list to be appropriate to post this problem to
both the CPMD team and IBM. I'd like to know if or when there will be a
fix available. An example CPMD input can be obtained from me on request,
if this helps. In the meantime we'll not use ESSL for FFT's in any
application.
Best regards, B. Kallies
--
Dr. Bernd Kallies
Konrad-Zuse-Zentrum für Informationstechnik Berlin
Takustr. 7
14195 Berlin
Germany
Tel: +49-30-84185-270
Fax: +49-30-84185-311
e-mail: kallies at zib.de
More information about the CPMD-list
mailing list