[QE-developers] on parallel HDF5 in QE
H. Lee
hjunlee at gmail.com
Wed Feb 26 22:46:46 CET 2020
Dear Pietro:
Thank you for your kindly reply.
I have not yet made a final decision on the use of parallel HDF5 and when I
need to know more about the details of parallel HDF5 in QE, I will contact
you.
Sincerely,
Hyungjun Lee
On Wed, Feb 26, 2020 at 2:48 PM <pdelugas at sissa.it> wrote:
>
> Dear Hyungjun
>
> As for the moment the hdf5 file is used only for writing the collected
> files at the end of the run. They are written by one of the nodes, so no
> need of using parallel writing.
>
> The parallel hdf5 needs some more work before using it.
>
> If you need parallel hdf5 we can arrange a Skype talk next week about the
> two or three things that need to be done.
>
> Best regards Pietro
>
>
>
>
> Il 26 feb 2020 9:01 PM, "H. Lee" <hjunlee at gmail.com> ha scritto:
>
> Dear developers:
>
> I have one simple question about the parallel HDF5 in QE.
>
> Regarding HDF5, the User’s Guide for Quantum ESPRESSO(v.6.5) reads the
> following:
>
> ...
> It is possible to use a library with disabled parallelism, but one has to
> add manually the flag
> -D__HDF5_SERIAL to the MANUAL_DFLAGS in the make.inc file.
> ...
>
> I understood that the above indicates that QE can use parallel HDF5, but
> can also use serial HDF5.
>
> However, after checking source codes, QE seems not to exploit parallel
> HDF5 in any places; it seems to me that all "read and write" using HDF5 are
> done in only one rank and we should gather (merge) or scatter (split) data
> before reading and writing.
> That is, I understand that the current QE doesn't exploit parallel HDF5.
>
> Do I understand correctly?
>
> For your info, I attached below some part of the subroutine write_wfc.
>
> Sincerely,
>
> Hyungjun Lee
>
> ...
> me_in_group = mp_rank( intra_group_comm )
> nproc_in_group = mp_size( intra_group_comm )
> ionode_in_group = ( me_in_group == root_in_group )
> !
>
>
>
> igwx = MAXVAL( igl(1:ngwl) )
> CALL mp_max( igwx, intra_group_comm )
> npol = 1
> IF ( nspin == 4 ) npol = 2
> npwx = SIZE( wfc, 1 ) / npol
> !
>
>
>
> IF ( ionode_in_group ) THEN
> #if defined __HDF5
> CALL qeh5_openfile(h5file, TRIM(filename)//'.hdf5',action =
> 'write')
> CALL qeh5_add_attribute( h5file%id, "ik", ik )
> CALL qeh5_add_attribute( h5file%id, "xk", xk, 1, [3])
> CALL qeh5_add_attribute( h5file%id, "ispin", ispin )
> IF (gamma_only) THEN
> CALL qeh5_add_attribute(h5file%id, "gamma_only", ".TRUE.")
> ELSE
> CALL qeh5_add_attribute( h5file%id, "gamma_only", ".FALSE." )
> END IF
> CALL qeh5_add_attribute( h5file%id, "scale_factor", scalef )
> CALL qeh5_add_attribute( h5file%id, "ngw", ngw )
> CALL qeh5_add_attribute( h5file%id, "igwx", igwx )
> CALL qeh5_add_attribute( h5file%id, "npol", npol )
> CALL qeh5_add_attribute( h5file%id, "nbnd", nbnd )
> #else
> OPEN ( UNIT = iuni, FILE = TRIM(filename)//'.dat', &
> FORM='unformatted', STATUS = 'unknown' )
> WRITE(iuni) ik, xk, ispin, gamma_only, scalef
> WRITE(iuni) ngw, igwx, npol, nbnd
> #endif
> ...
>
>
> _______________________________________________
> developers mailing list
> developers at lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/developers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20200226/f84ff516/attachment-0001.html>
More information about the developers
mailing list