Page 1 of 1

Bug in GW calulation in yambo 4.2.x ?

Posted: Fri Dec 15, 2017 12:08 am
by claudio
Dear developers

I'm trying to perform a simple GW calculation with yambo 4.2.1 (or 4.2.0) on a small system, but I always get this error

Code: Select all

Xo@q[1] |                                        | [000%] --(E) --(X)

[ERROR] STOP signal received while in :[04] Dynamic Dielectric Matrix (PPA)
[ERROR]Allocation of ggw%WF_symm_i failed
notice that with yambo 4.1.4 the calculation runs, and requires few memory (a two atoms system and few bands).
The run is in serial.

I put in attachment the input files

Best
Claudio

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Fri Dec 15, 2017 9:55 am
by Davide Sangalli
Ciao Claudio,
I tried but I cannot reproduce the error.

Can you also post the configuration options you used.

D.

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Fri Dec 15, 2017 10:57 am
by claudio
Hi Davide

I use ifort 13.1.1, this is my compilation options

./configure FC=ifort F77=ifort CC=icc --with-blas-libs="-mkl=sequential" --with-lapack-libs="-mkl=sequential" --with-fft-libdir="/opt/fftw3/lib/" --with-fft-includedir="/opt/fftw3/include/" --with-fft-path="/opt/fftw3/" --enable-open-mp

and in attachment the config.log

Anyway I will make some test to see if I can make it works on my computer cluster :-(
and let you know
claudio

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Mon Dec 18, 2017 10:42 am
by Davide Sangalli
From version 4.2 you should be able to compile also with

Code: Select all

--enable-memory-profile
. It may help.

D.

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Mon Dec 18, 2017 1:58 pm
by claudio
Dear Davide

I discussed with Myrta that found the same bug in yambo 4.2.x.

According to her, the bug is due to the combination of Yambo 4.2.x + ifort 13 + openmp

If one turns off the openmp in compilation, the bug disappears.
I tested it and it works. Notice that I was running in serial with 1 thread, but anyway the bug was present.

More recent compilers do not present this bug, so I will not investigate it anymore.

I can work without openmp, my system is small, and next year the system administrator will update the compiler
on my cluster :-)

best
Claudio

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Sun Dec 24, 2017 10:49 am
by Davide Sangalli
Ciao Claudio,
thanks for the report. I'd like to check if the problem is indeed a bug of ifort 13.
If you (or Myrta) have time, please just try to do the run with yambo 4.2 + openmp + ifort13 + --enable-memory-profile.

Best,
D.

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Sat Dec 30, 2017 3:46 pm
by claudio
Dear Davide

I made the test you asked me with yambo 4.2.1 (GPL version)

I compiled one time with openmp and another time without.
Always with ifort 13.

1) Result without open-mp

<---> [MEMORY] Alloc qindx_X(2Mb) TOTAL: 3Mb (traced) 0b (memstat)
<---> [MEMORY] Alloc qindx_S(2Mb) TOTAL: 5Mb (traced) 0b (memstat)
<---> [04] Dynamic Dielectric Matrix (PPA)
<---> [LA] SERIAL linear algebra
<---> [DIP] Checking dipoles header
<---> [MEMORY] Alloc WF%c(84Mb) TOTAL: 92Mb (traced) 0b (memstat)
<01s> [WF] Performing Wave-Functions I/O from ./SAVE
<01s> [FFT-X] Mesh size: 18 18 18
<01s> [X-CG] R(p) Tot o/o(of R) : 4269 41472 100
<02s> Xo@q[1] |########################################| [100%] --(E) --(X)
<02s> X@q[1] |########################################| [100%] --(E) --(X)

2) Result with openmp

<---> [MEMORY] Alloc qindx_X(2Mb) TOTAL: 3Mb (traced) 0b (memstat)
<---> [MEMORY] Alloc qindx_S(2Mb) TOTAL: 5Mb (traced) 0b (memstat)
<01s> [04] Dynamic Dielectric Matrix (PPA)
<01s> [LA] SERIAL linear algebra
<01s> [DIP] Checking dipoles header
<01s> [MEMORY] Alloc WF%c(84Mb) TOTAL: 92Mb (traced) 0b (memstat)
<01s> [WF] Performing Wave-Functions I/O from ./SAVE
<01s> [FFT-X] Mesh size: 18 18 18
<02s> [X-CG] R(p) Tot o/o(of R) : 4269 41472 100
<02s> Xo@q[1] | | [000%] --(E) --(X)
<02s> [WARNING]Allocation of ggw%rho_tw_rs failed. Object was already allocated, tough, not present in the archive.

[ERROR] STOP signal received while in :[04] Dynamic Dielectric Matrix (PPA)
[ERROR]Allocation of ggw%WF_symm_i failed

Notice that I have done all the runs in serial and with only one thread.

Now I get that ggw%rho_tw_rs is already allocated.

Best
Claudio

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Sat Dec 30, 2017 7:12 pm
by Davide Sangalli
Thanks.
I think the error message maybe wrong.
It's a very new internal yambo message.

It seems that the line making it crash is number 208 in src/pol_function/X_irredux.F

Code: Select all

 call elemental_collision_alloc(Xo_scatt,NG=ngrho,TITLE="Xo")
End in particular, in src/modules/mod_collision_el.F
The lines 103-104

Code: Select all

     if (fft_size>0) then
       YAMBO_ALLOC(ggw%rho_tw_rs,(fft_size))
       YAMBO_ALLOC(ggw%WF_symm_i,(fft_size,n_spinor))
       YAMBO_ALLOC(ggw%WF_symm_o,(fft_size,n_spinor))
     endif
I'd be curious to see how much is fft_size there.
Xo_scatt, which is the allocated object here, is "omp private".
So the amount of memory needed increases while increasing the number of threads.
But, since you are just using 1 thread and not much memory anyway, it really seems a bug of ifort13+openmp...
Maybe it has problems to handle omp private fortran types.

Thanks again.
Best,
D.

Re: Bug in GW calulation in yambo 4.2.x ?

Posted: Tue May 29, 2018 1:38 pm
by claudio
Dear all

after updating ifort to the version 18th and moving from openmpi to intempi
the bug disappear on my cluster

best
Claudio