EPW stop near the end of calculation without any CRASH

Post here questions linked with issue while running the EPW code

Moderator: stiwari

Post Reply
jqhuang
Posts: 12
Joined: Mon Jan 07, 2019 2:24 pm
Affiliation:

EPW stop near the end of calculation without any CRASH

Post by jqhuang »

Dear all,
i encounter an issue when i run the latest version EPW (i.e. QE6.4.1). That is, when i use nk= 14 14 1, nq = 7 7 1, and interpolate to nkf = 30 30 1, nqf = 30 30 1, the calculation run successfully. But when i use a denser nk = 18 18 1, q = 9 9 1, and keep the interpolation unchenged(nkf = 30 30 1, nqf = 30 30 1), the code stop near the end of calculation without any CRASH ,as follow shows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Writing Hamiltonian, Dynamical matrix and EP vertex in Wann rep to file


Reading Hamiltonian, Dynamical matrix and EP vertex in Wann rep from file


Reading interatomic force constants

IFC last 0.0079579
Imposed simple ASR

Finished reading ifcs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I checked the source code, and the relevant code is as follow :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IF (lifc) CALL read_ifc
!
IF (etf_mem == 0) then
IF (.not. ALLOCATED(epmatwp)) ALLOCATE ( epmatwp ( nbndsub, nbndsub, nrr_k, nmodes, nrr_g) )
epmatwp = czero
IF (mpime.eq.ionode_id) THEN
! SP: The call to epmatwp is now inside the loop
! This is important as otherwise the lrepmatw integer
! could become too large for integer(kind=4).
! Note that in Fortran the record length has to be a integer
! of kind 4.
lrepmatw = 2 * nbndsub * nbndsub * nrr_k * nmodes
filint = trim(prefix)//'.epmatwp'
CALL diropn (iunepmatwp, 'epmatwp', lrepmatw, exst)
DO irg = 1, nrr_g
CALL davcio ( epmatwp(:,:,:,:,irg), lrepmatw, iunepmatwp, irg, -1 )
ENDDO
!
CLOSE(iunepmatwp)
ENDIF
!
CALL mp_bcast (epmatwp, ionode_id, inter_pool_comm)
CALL mp_bcast (epmatwp, root_pool, intra_pool_comm)
!
ENDIF
!
CALL mp_barrier(inter_pool_comm)
IF (mpime.eq.ionode_id) THEN
CLOSE(epwdata)
IF (vme) THEN
CLOSE(iunvmedata)
ELSE
CLOSE(iundmedata)
ENDIF
ENDIF
!
WRITE(stdout,'(/5x,"Finished reading Wann rep data from file"/)')
!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
so it is clear that ,the read_ifc subroutine been successfully performed, but the last standard write has not been executed.
i use etf_mem == 0 in my epw.in inputfile, but i don't think it is the memory issue, because the memory in my supercomputer is large enough and the coarse grid is not that dense.
i wonder if there is any other causes that may lead to this problem.
i wish your reply and really appreciate it.
August
Posts: 1
Joined: Sun Jan 02, 2022 6:34 am
Affiliation: NYUSH

Re: EPW stop near the end of calculation without any CRASH

Post by August »

Just get rid of nosym=.true. in the previous nscf calculation.
Hope it helps.
hlee
Posts: 415
Joined: Thu Aug 03, 2017 12:24 pm
Affiliation: The University of Texas at Austin

Re: EPW stop near the end of calculation without any CRASH

Post by hlee »

Dear jqhuang:

Typically, the issue with nosym occurs in the recent versions of EPW (>= EPW v5.3) and it occurs at the earlier step.

I suspect that your issue is due to the large memory footprint.
When etf_mem=0, "every" core allocates the complex 5-dim array of epmatwp, epmatwp ( nbndsub, nbndsub, nrr_k, nmodes, nrr_g), nrr_k and nrr_g increase as the number of coarse k and q grids increase.

Sincerely,

H. Lee
Post Reply