MPI IO error: ikpt_this_proc <=0


I am calculating frequency-dependent second order nonlinear susceptibility tensor with
abinit 9.4.1 version.

To compute the momentum matrix elements,
the first dataset is a scf ground state calculation, the second dataset is a nscf
calculation. The third dataset uses the second one to produce the wavefunctions
for all the bands, for the full Brillouin zone.

However, when I set “autoparal 1”, I always get following error when the code run
the third dataset to read the wavefunctions from disk file from the second dataset,

— !BUG
src_file: m_rwwf.F90
src_linne: 373
mpi_rank: 17
message: |
rwwf: ikpt_this_proc <= 0


I would like to know (1) what does ikpt_this_proc <=0 mean? (2) how to avoid ikpt_this_proc <=0.

By setting “autoparal 1”, the kgb distributuon are different for the dataset 3 than dataset 1 and 2.
So, I also tried kgb distribution manually. But I still get the same error.

Any help would be appreciated.


Hi All,

Below is the detailed information.

For dataset 1: nband = 278, nkpt = 39.
For dataset 2: nband = 278, nkpt = 39
For dataset 3: nband = 278, nkpt = 96

For all the three datasets:
nsppol = 2
paral_kgb = 1, np+spkpt = 64, npfft = 10, npband = 1, bandpp =2

I use 640 mpi procs to run the job.

Any suggestions for the “ikpt_this_proc <= 0” problem will
be great appreciated.

Thank you,

Hi Jie,

Need some more information in general: log, input, compilation parameters, architecture. In particular how are you running dtset3? It’s another nscf run? Why do 2+3 instead of just dtset 2 with full BZ k-points?

Your processor distribution is probably staying the same for all datasets, while it should adjust npkpt npband etc. Here one of the processors is complaining that it has no k to deal with. What are the values of all the npXXX variables for each dtset?

  1. You have spin (in principle npkpt 64 is too large for 39 kpts). If so then 392=78/64 = a bit more than 1 kpt per core. 962= 192 / 64 = 3.0 should distribute well.
  2. try a more recent abinit version, 9.4 is a bit antiquated by now.
  3. npfft is a bit high - typically not very efficient beyond 4 or 8 or so, though it does reduce the memory footprint
  4. try with a nice multiple of nkpt, like npkpt 96, adjusting the total proc count.
  5. in the end it might be an issue with reading in from a WF file which has a different processor distribution. In principle this should be fine, but again, try a more recent abinit version.

Hi Mverstra,

Your suggestions are very helpful.
I will follow up when I have a similar situation in the future.