Page 2 of 3

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Fri Mar 29, 2013 1:20 am
by lesheng
Daniele Varsano wrote:Dear Lesheng,
And the repeated keyword are indeed generated by the code itself.
This is a sign that something went wrong in the parallel compilation, and yambo in parallel is not working properly.

Cheers,

Daniele
Dear Daniele,

Thanks, I will try to compile the code again to see if there is still such a problem. I'll post the result here.

Thank you for your time.

Best,
lesheng

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Fri Apr 25, 2014 1:20 pm
by leoteo
Hi,

we have actually run into the same problem (calculation runs smoothly, but quasiparticle energies are NaN).

In our case it seems that the reason was a faulty database generated by p2y (despite I don't remember p2y producing any error messages during the conversion).
We tried redoing the GW calculation several times without success (always deleting all databases generated by yambo). Only when we re-created the databases from quantum espresso with p2y (without changing any parameters), we obtained reasonable numbers for the quasiparticle energies.

At the moment I am unable to track down the exact reason for the NaN problem (I will keep my eyes open). But I was wondering, whether it is possible in some way to 'check' the databases before starting the calculation with yambo. Since they are in binary format, a text editor doesn't help very much here...

Best,
Leopold

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Fri Apr 25, 2014 6:17 pm
by Daniele Varsano
Dear Leopold,
if you compile yambo linking with netcdf libraries, you can look into database by typing

Code: Select all

ncdump ./SAVE/ndb.* 
About the NAN it is hard to say what is going wrong.
Hope it helps,
Daniele

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Fri Apr 25, 2014 10:06 pm
by leoteo
Dear Daniele,

thanks a lot, the ncdump utility is exactly what I needed.

It seems that in my case the problem lies in the ns.kb_pp_pwscf anf ns.kb_pp_pwscf_fragment_1 databases.

On the machine, where I have the NaN problem, the contents of the ns.kb_pp_pwscf_fragment_1 database seem to be random -- they change from one run of p2y to the next (all based on the same pwscf data).

One time the data in the PP_KB_K1 variable looks like this

Code: Select all

 PP_KB_K1 =
  0, 3.865156e-15, 3.863288e-15, 3.861117e-15, 3.861117e-15, 3.858642e-15,
    3.85461e-15, 3.85461e-15, 3.853764e-15, 3.851597e-15, 3.851597e-15,
    3.85119e-15, 3.849736e-15, 3.849736e-15, 3.849024e-15, 3.849024e-15,
    3.847809e-15, 3.847572e-15, 3.847572e-15, 3.847572e-15, 3.847572e-15,
    ...
the next time like this

Code: Select all

 PP_KB_K1 =
  0, 1.839352e-08, 1.838463e-08, 1.83743e-08, 1.83743e-08, 1.836252e-08,
    1.834333e-08, 1.834333e-08, 1.833931e-08, 1.8329e-08, 1.8329e-08,
    1.832706e-08, 1.832014e-08, 1.832014e-08, 1.831675e-08, 1.831675e-08,
    1.831097e-08, 1.830984e-08, 1.830984e-08, 1.830984e-08, 1.830984e-08,
   ...
and another time like this

Code: Select all

 PP_KB_K1 =
  0, 3.993321e+16, 3.991392e+16, 3.989148e+16, 3.989148e+16, 3.986591e+16,
    3.982426e+16, 3.982426e+16, 3.981551e+16, 3.979313e+16, 3.979313e+16,
    3.978892e+16, 3.97739e+16, 3.97739e+16, 3.976655e+16, 3.976655e+16,
    3.975399e+16, 3.975154e+16, 3.975154e+16, 3.975154e+16, 3.975154e+16,
   ...
The p2y on this machine was compiled with the intel compiler, while the one on the machine without problems was compiled with gfortran
(for the gfortran executable I also checked that the p2y results are completely reproducible).

I will look further into this..

Best,
Leo

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Sun Apr 27, 2014 11:58 am
by Daniele Varsano
Dear Leo,
thanks for reporting, we will also have a loot al that, can you post the pseudo file?
Best,
Daniele

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Sun Apr 27, 2014 5:20 pm
by Davide Sangalli
Dear Leo,
since your problem seems compiler/architecture related it would be useful to have the instructions you used to compile yambo, i.e. the configure command line.

Also the error happens at the p2y level, it could depend on a different version of the iotk library (?)

Best regards,
Davide

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Mon Apr 28, 2014 8:20 am
by leoteo
Dear Daniele and Davide,

thank you very much for your helpful suggestions!

We are using the Goedecker-Hartwigsen-Hutter-Teter norm-conserving scalar-relativistic pseudopotentials for PBE
http://www.quantum-espresso.org/wp-cont ... be-hgh.UPF
http://www.quantum-espresso.org/wp-cont ... be-hgh.UPF

For p2y we have taken iotk from QE 5.0.3. We have not compiled the full suite, I only made the part in the iotk subfolder (maybe that was not allowed? I will remake the full suite and test again).
The configure I used is

Code: Select all

export CC=icc
export FC=ifort
export PFC=mpif90

./configure \
--enable-msgs-comps \
--enable-netcdf-hdf5 \
--with-blas="$MKL_LIB" \
--with-lapack="$MKL_LIB" \
--with-blacs="$SCALAPACK_SHLIB" \
--with-scalapack="$SCALAPACK_SHLIB" \
--with-fftw="$FFTW_BASE" \
--with-fftw-lib="$FFTW_LIB" \
--with-netcdf-include="${NETCDF_BASE}/include" \
--with-netcdf-lib="$NETCDF_LIBDIR" \
--with-netcdf-link="$NETCDF_F90_LIB" \
--with-iotk="/gpfs/work/pr89mi/pr3da262/TEST/espresso-5.0.3/iotk" \
--with-p2y="5.0.3" \
and the result at the end of the configure is

Code: Select all

#
# [VER] 3.4.1 r.3187
#
# [SYS] linux@x86_64
# [SRC] /gpfs/work/pr89mi/pr3da262/TEST/yambo-fat/devel
# [BIN] /gpfs/work/pr89mi/pr3da262/TEST/yambo-fat/devel/bin
# [FFT] External Fast Fourier transform
#
# [ ] Double precision
# [X] Redundant compilation
# [X] MPI
# [ ] OpenMP
# [X] PW (5.0) support
# [ ] ETSF I/O support
# [X] SCALAPACK
# [X  ] NETCDF/HDF5/Large Files
# [  X] Built-in BLAS/LAPACK/LOCAL
#
# [ CPP ] icc -E -ansi
# [  C  ] icc -g -O2 -D_C_US -D_FORTRAN_US
# [MPICC] mpicc -g -O2 -D_C_US -D_FORTRAN_US
# [ F90 ] ifort -assume bscc -O3 -ip -xHost
# [MPIF ] mpif90 -assume bscc -O3 -ip -xHost
# [ F77 ] ifort -assume bscc -O3 -ip -xHost
# [Cmain] -nofor_main
# [NoOpt] -assume bscc -O0 -xHost
#
# [ MAKE ] make
# [EDITOR] vim
#
I will try this evening to make further progress.

Best,
Leo

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Mon Apr 28, 2014 4:40 pm
by Davide Sangalli
Dear Leopold,
For p2y we have taken iotk from QE 5.0.3. We have not compiled the full suite, I only made the part in the iotk subfolder (maybe that was not allowed? I will remake the full suite and test again).
This should be fine, yambo only needs the iotk library.

Also I had a look to your configure options and everything seems fine to me.
I do not have the intel compilers on my machine, I'm used to work with gfortran. Anyway as soon as I'll be able I'll try to test them too, but it will take some time ...

Meanwhile, thank you for your feedbacks.

Best,
Davide

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Mon Apr 28, 2014 11:13 pm
by leoteo
Dear Daniele and Davide,

On the 'bad' machine, working with icc/ifort 13.1, I have recompiled QE and also reduced optimization for yambo to -O2 (no -xHost). However, this did solve the problem.

I then moved to the 'good' machine and compiled QE and yambo with the intel compiler 14.0.1.106. Here, the content of the ns.kb_pp_pwscf_fragment_1 database is the same for each run - PP_KB_K1 is completely zero.
However, it is not the same as what I get with the p2y executable compiled with gfortran.

And I have to say that the data in both databases looks a bit strange. I have uploaded the result of ncdump for both databases on dropbox (<25M)

https://www.dropbox.com/s/g1v33cj5rs0hd ... 1_gfortran
https://www.dropbox.com/s/q74vkbx88vhl7 ... nt_1_intel

EDIT: Note also the 'NaNF' at the beginning of variable PP_KBD_K1

It would be great if you could tell me, whether the content of the databases makes sense.

Best,
Leo

P.S. Both executables (intel and gfortran version) were linked againstr Cray's libsci for blas, lapack, scalapack.

Re: "NaN" for "E-E0" and "Sc(E0)"

Posted: Tue Apr 29, 2014 10:37 am
by Davide Sangalli
Dear Leopol,
could you also provide your pwscf input file.

I'll try to reproduce your results.

Best regards,
Davide