Page 1 of 1

segfault with epw

Posted: Mon Mar 22, 2021 11:59 am
by clr2
Dear epw users and developers

I'm using this input file for scf:

&CONTROL
calculation = 'scf',
pseudo_dir = '.',
title = ' 1 -1 2 2 -2 -1 2 -1 0 fcc SL' ,
wf_collect = .true.,
/
&SYSTEM
ibrav = 0,
celldm(1) = 10.2631064800 ,
nat = 10 ,
ntyp = 2 ,
nbnd = 28 ,
ecutwfc = 20.000 ,
nr1=48
nr2=48
nr3=48
/
&ELECTRONS
diagonalization = 'david',
/
&IONS
/
&CELL
/
CELL_PARAMETERS {alat}
0.00000000 1.58113883 0.00000000
-1.58113883 0.00000000 0.00000000
-0.79056942 0.79056942 0.42334649
ATOMIC_SPECIES
Si 28.085500 Si.UPF
C 12.011000 C.UPF
ATOMIC_POSITIONS {crystal}
Si -0.05078229 -0.01946148 0.05713973
Si 0.41946148 0.80635744 -0.05713973
Si 0.59364256 0.16232175 0.05713973
Si 0.23767825 0.45078229 -0.05713973
Si 0.75635744 0.28767825 0.44286027
Si 0.40078229 0.46946148 0.44286027
Si 0.11232175 -0.00078229 0.55713973
Si -0.06946148 -0.35635744 0.55713973
C 0.80000000 0.60000000 0.00000000
C 0.55000000 -0.15000000 0.50000000
K_POINTS {automatic}
4 4 4 1 1 1

and this one for ph.x

--
&inputph
prefix = 'pwscf',
epsil = .false.,
fildyn = 'pwscf.dyn',
ldisp = .true.
fildvscf = 'dvscf'
nq1=1,
nq2=1,
nq3=1,
/


--
&inputepw
prefix = 'pwscf'
outdir = './'

amass(1) = 28.0855
amass(2) = 12

proj(1) = "Si:sp3"
proj(2) = "C :sp3"


elph = .true.
kmaps = .false.
epbwrite = .true.
epbread = .false.
epwwrite = .true.
epwread = .false.
etf_mem = 1

nbndsub = 40
! nbndskip = 0

! lifc = .true.
! asr_typ = 'crystal'

wannierize = .true.
num_iter = 500
iprint = 2
! dis_win_max = 18
! dis_froz_max= 8.5


wdata(1) = 'bands_plot = .true.'
wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'L 0.50 0.00 0.00 G 0.00 0.00 0.00'
wdata(4) = 'G 0.00 0.00 0.00 X 0.50 0.50 0.00'
wdata(5) = 'end kpoint_path'
wdata(6) = 'bands_plot_format = xmgrace'
wdata(7) = 'guiding_centres = .true.'
wdata(8) = 'dis_num_iter = 500'
wdata(9) = 'num_print_cycles = 10'
wdata(10) = 'dis_mix_ratio = 1.0'
! wdata(11) = '!use_ws_distance = T'

elecselfen = .false.
phonselfen = .false.
a2f = .false.


fsthick = 1.0 ! eV
temps = 1 ! K
! degaussw = 0.005 ! eV

dvscf_dir = './save'

! band_plot = .true.

mp_mesh_k = .true.

nkf1=20
nkf2=20
nkf3=20

nqf1=1
nqf2=1
nqf3=1

nk1 = 4
nk2 = 4
nk3 = 4
nq1 = 1
nq2 = 1
nq3 = 1
/

I'm obtaining a segfault when running epw. See the attached log files.

I don't know if this is related to a problem I reported on the qe forum:

https://lists.quantum-espresso.org/pipe ... 47157.html

But that is why I specify the values of nr1, nr2, nr3 in the scf part, otherwise the ph.x part does not run as well.

Do you have any idea how to work around this?

Any help is appreciated.

Best regards,
Carlos Reis.

Re: segfault with epw

Posted: Mon Mar 22, 2021 2:29 pm
by hlee
Dear Carlos Reis:

In order to identify the origin of your issue, I would like to suggest you the following things:
(1) Could you let me know the result of issuing "ulimit -a" on your computing node?

(2) Could you try the same number of dense k grids as that of coarse ones and check whether you encounter the same issue?

That is, instead of

Code: Select all

nkf1=20
nkf2=20
nkf3=20
, the same dense k grids of,

Code: Select all

nkf1=4
nkf2=4
nkf3=4
(3) Could you try "etf_mem = 2" instead of "etf_mem = 1" in your epw.in and check whether you encounter the same issue?

Sincerely,

H. Lee

Re: segfault with epw

Posted: Mon Mar 22, 2021 3:03 pm
by clr2
Dear H. Lee

1) Here is the result of ulimit -a

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 772373
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 32768
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 12288
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

2) with
nkf1=4
nkf2=4
nkf3=4

the issue remains (segfault)

3) with etf_mem=2

segfaults after "Velocity matrix elements calculated" :

===================================================================
irreducible q point # 1
===================================================================

Symmetries of small group of q: 2
in addition sym. q -> -q+G:

Number of q in the star = 1
List of q in the star:
1 0.000000000 0.000000000 0.000000000
Imposing acoustic sum rule on the dynamical matrix
Read dielectric tensor and effective charges

q( 1 ) = ( 0.0000000 0.0000000 0.0000000 )

Writing epmatq on .epb files


The .epb files have been correctly written

Use zone-centred Wigner-Seitz cells
Number of WS vectors for electrons 81
Number of WS vectors for phonons 1
Number of WS vectors for electron-phonon 1
Maximum number of cores for efficient parallelization 30
Results may improve by using use_ws == .TRUE.

Velocity matrix elements calculated


===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= RANK 0 PID 7165 RUNNING AT s001-n057
= KILLED BY SIGNAL: 11 (Segmentation fault)
===================================================================================

Thank you!

Best regards,
Carlos Reis

Re: segfault with epw

Posted: Mon Mar 22, 2021 4:29 pm
by hlee
Dear Carlos Reis:
stack size (kbytes, -s) 12288
I suspect the stack size not enough for your case and I would suggest you to issue "ulimit -s unlimited".

Sincerely,

H. Lee

Re: segfault with epw

Posted: Mon Mar 22, 2021 4:42 pm
by clr2
Dear H Lee

you are probably right. Unfortunately I'm getting the message when I run ulimit -s unlimited

bash: ulimit: stack size: cannot modify limit: Operation not permitted

If you know a workaround for this please let me know.

Best regards,
Carlos Reis.

Re: segfault with epw

Posted: Mon Mar 22, 2021 5:02 pm
by hlee
Dear Carlos Reis:

In this case, there are just two things you can try, but both of them could fail without success:

(1) If you are using the INTEL compiler, please find the line of "MANUAL_DFLAGS =" in your make.inc and change this line by the following line ( https://gitlab.com/QEF/q-e/-/blob/devel ... nt.f90#L67 )
(please pay attention to the "TWO" underscores between "-D" and "INTEL" below)

MANUAL_DFLAGS = -D__INTEL_COMPILER

(2) It seems that the manual change of stack size is prohibited on your clusters; please contact the system administrators about your issue.

Sincerely,

H. Lee

Re: segfault with epw

Posted: Mon Mar 22, 2021 5:35 pm
by hlee
Dear Carlos Reis:

I forgot to mention another option:
I don't like it and have no experience with it, but you could try to compile the code with the -heap-arrays option; I think that the exact option is dependent on the compilers you are using.

Sincerely,

H. Lee

Re: segfault with epw

Posted: Mon Mar 22, 2021 7:07 pm
by clr2
Dear H Lee

I'm using the intel compiler.

I just ran successfully the example on another machine in which I could set ulimit -s unlimited.

I will try the -heap-arrays option.

That you very much for your suggestions.

Best regards,
Carlos Reis.

Re: segfault with epw

Posted: Mon Mar 22, 2021 7:15 pm
by clr2
Dear H Lee

I compiled the code with the -heap-arrays option and it worked!

Thanks! this really helps :)

Best regards,

Carlos Reis,