<div dir="ltr"><div>Dear developers:</div><div><br></div><div>I have one simple question about the parallel HDF5 in QE.</div><div><br></div><div>Regarding HDF5, the User’s Guide for Quantum ESPRESSO(v.6.5) reads the following:</div><div><br></div><div>...</div><div><span style="font-size:19.9253px;font-family:sans-serif">It is possible to use a library with disabled parallelism, but one has to add manually the</span><span style="font-size:19.9253px;font-family:sans-serif"> flag</span><span style="font-size:19.9253px;font-family:monospace"><br></span></div><div><span style="font-size:19.9253px;font-family:monospace">-D</span><span style="font-size:19.9253px;font-family:monospace">__HDF5_</span><span style="font-size:19.9253px;font-family:monospace">SERIAL</span><span style="font-size:19.9253px;font-family:sans-serif"> to the </span><span style="font-size:19.9253px;font-family:monospace">MANUAL</span><span style="font-size:19.9253px;font-family:monospace">_DFLAGS</span><span style="font-size:19.9253px;font-family:sans-serif"> in the </span><span style="font-size:19.9253px;font-family:monospace">make.inc </span><span style="font-size:19.9253px;font-family:sans-serif">file.</span></div><div><span style="font-size:19.9253px;font-family:sans-serif"></span>...</div><div><br></div><div>I understood that the above indicates that QE can use parallel HDF5, but can also use serial HDF5.</div><div><br></div><div>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.<br></div><div>That is, I understand that the current QE doesn't exploit parallel HDF5.</div><div><br></div><div>Do I understand correctly?<br></div><div><br></div><div>For your info, I attached below some part of the subroutine write_wfc.</div><div><br></div><div>Sincerely,</div><div><br></div><div>Hyungjun Lee<br></div><div><br></div><div>...<br></div><div>      me_in_group     = mp_rank( intra_group_comm )<br>      nproc_in_group  = mp_size( intra_group_comm )<br>      ionode_in_group = ( me_in_group == root_in_group )<br>      !                                                                                                                                                                                                                                                                            <br>      igwx = MAXVAL( igl(1:ngwl) )<br>      CALL mp_max( igwx, intra_group_comm )<br>      npol = 1<br>      IF ( nspin == 4 ) npol = 2<br>      npwx = SIZE( wfc, 1 ) / npol<br>      !                                                                                                                                                                                                                                                                            <br>      IF ( ionode_in_group ) THEN<br>#if defined  __HDF5<br>         CALL qeh5_openfile(h5file, TRIM(filename)//'.hdf5',action = 'write')<br>         CALL qeh5_add_attribute( h5file%id, "ik", ik )<br>         CALL qeh5_add_attribute( h5file%id, "xk", xk, 1, [3])<br>         CALL qeh5_add_attribute( h5file%id, "ispin", ispin )<br>         IF (gamma_only) THEN<br>            CALL qeh5_add_attribute(h5file%id, "gamma_only", ".TRUE.")<br>         ELSE<br>            CALL qeh5_add_attribute( h5file%id, "gamma_only", ".FALSE." )<br>         END IF<br>         CALL qeh5_add_attribute( h5file%id, "scale_factor", scalef )<br>         CALL qeh5_add_attribute( h5file%id, "ngw", ngw )<br>         CALL qeh5_add_attribute( h5file%id, "igwx", igwx )<br>         CALL qeh5_add_attribute( h5file%id, "npol", npol )<br>         CALL qeh5_add_attribute( h5file%id, "nbnd", nbnd )<br>#else<br>         OPEN ( UNIT = iuni, FILE = TRIM(filename)//'.dat', &<br>              FORM='unformatted', STATUS = 'unknown' )<br>         WRITE(iuni) ik, xk, ispin, gamma_only, scalef<br>         WRITE(iuni) ngw, igwx, npol, nbnd<br>#endif</div><div>...<br></div><div><div><br></div><span style="font-size:19.9253px;font-family:sans-serif"></span></div></div>