<div dir="ltr"><div>Dear Pietro:</div><div><br></div><div>Thank you for your kindly reply.</div><div><br></div><div>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.</div><div><br></div><div>Sincerely,</div><div><br></div><div>Hyungjun Lee<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 26, 2020 at 2:48 PM <<a href="mailto:pdelugas@sissa.it">pdelugas@sissa.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><br><div class="gmail_extra" dir="auto">Dear Hyungjun</div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">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. </div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">The parallel hdf5 needs some more work  before using it. </div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">If you need parallel hdf5 we can arrange a Skype talk next week about the two or three things that need to be done. </div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto">Best regards Pietro</div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto"><br></div><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">Il 26 feb 2020 9:01 PM, "H. Lee" <<a href="mailto:hjunlee@gmail.com" target="_blank">hjunlee@gmail.com</a>> ha scritto:<br type="attribution"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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>
</blockquote></div><br></div></div>_______________________________________________<br>
developers mailing list<br>
<a href="mailto:developers@lists.quantum-espresso.org" target="_blank">developers@lists.quantum-espresso.org</a><br>
<a href="https://lists.quantum-espresso.org/mailman/listinfo/developers" rel="noreferrer" target="_blank">https://lists.quantum-espresso.org/mailman/listinfo/developers</a><br>
</blockquote></div>