Page 1 of 1

NetCDF: Variable not found

Posted: Fri Jun 24, 2016 9:00 am
by davide.tiana
Dear Yamboers

I've just started using yambo so apologies if my question is silly.
For testing the different techniques, I am trying to reproduce the tutorial on Silane but using another molecule 2,5-Dihydroxyterephthalic acid.

When the attached input using 64 bands
% BSEBands
0 | 64 | # [BSK] Bands range

yambo crases because there is not enough memory (btw I am running on 64Gb memory per node, is it reasonable that it is not enough? or I am doing something wrong?)

started at
Thu Jun 23 19:09:08 CEST 2016
forrtl: severe (41): insufficient virtual memory
Image PC Routine Line Source
libhdf5_fortran.s 00007FE7B9961E48 Unknown Unknown Unknown
yambo 00000000005B1221 Unknown Unknown Unknown
yambo 000000000041D5F4 Unknown Unknown Unknown
yambo 00000000004135F9 Unknown Unknown Unknown
yambo 000000000040DF95 Unknown Unknown Unknown
yambo 000000000040D704 Unknown Unknown Unknown
yambo 000000000040AC63 Unknown Unknown Unknown
libc.so.6 00000036C781ED5D Unknown Unknown Unknown
yambo 0000000000409EE9 Unknown Unknown Unknown
finished at
Thu Jun 23 19:58:56 CEST 2016

Then I reduced the bands
| % BSEBands
| 20 | 60 |

and yambo runs smoothly.

I was now trying to see the maximun number of bands I can use but when I try to run yambo it produces this error:
[ERROR] STOP signal received while in :[05.04] TDDFT Kernel (Resonant CORRRELATION EXCHANGE)

[ERROR][NetCDF] NetCDF: Variable not found

I am honestly confused,
Why do this happen?

Re: NetCDF: Variable not found

Posted: Fri Jun 24, 2016 9:29 am
by Daniele Varsano
Dear Davide,
it takes some time to familiarize with yambo, so there are not silly question.
First I had a look to your input:
what I noticed is:
1) A very huge of Gvcetors in BSENGexx, do you need such a big number?
2) Parallelism for the BS calculation is not defined
3) X_all_q_CPU is defined twice: in the first definition does not make much sense to parllelize in q/k as your calculation is gamma only
4) There is a spurious %, this usually can make problems as the rest of the input is not read correctly.

So, I strongly suggest you to use command line to prepare input (adding verbosity with -V for extra variable) and edit them, in such a way you are sure you are setting the right variable with the right syntax.

Reports:
Bands 1-64, in general in BSE you do not need to include all the occupied bands, but bands around the Fermi energy, anyway this is a ALDA calculations you are at gamma only and the with such bands the Matrix is still very small. In order to look at the memory problem one should look to the standard output (LOGs) which somehow monitor the memory. Here I suppose that the problem is in the very large number of BSENGexx.
Try to reduce them and see if it runs and how memory it needs.
Anyway in all the report I can see that you are using only 1 MPI task. Check your submission script and also the inputs:

Code: Select all

BS_CPU= "1.64"               # [PARALLEL] CPUs for each role
BS_ROLEs= "k.eh"  
I use to define all the variables, something like:
BS_CPU= "1 64 1" # [PARALLEL] CPUs for each role
BS_ROLEs= "k eh t"
but I do not think this is the problem.
Other number of bands (Netcdf problem).
Inspecting the report, when yambo read or write databases you can see the keyword WR or RD and the database description.
In your case I can see that Yambo reads a previous existing database:

Code: Select all

 [RD./02//ndb.BS_Q1_CPU_0]-
which probably is corrupted so you get the netcdf error. Remove it or redirect the I/O to another directory by using the -J option.

Hope this can solve some of the problem you are facing.

Best,
Daniele

[SOLVED] Re: NetCDF: Variable not found

Posted: Fri Jun 24, 2016 10:06 am
by davide.tiana
Hi Daniele

many thanks for answering and helping with some suggestions.
The problem was solved removing the database indeed.