<div dir="ltr"><div>I think that the statement "npools must be a divisor of the total number of k-points" in the slides is inaccurate.</div><div>npools needs to be less than or equal to the total number of k-points because every pool must have at least 1 k-point to work on.</div><div>npool not being a divisor doesn't cause a correctness issue.<br><div>A non-divisor causes more imbalance and reduces efficiency because some pools work on less number of k-points and become idle at pool synchronization points once their assigned k-points are completed.</div></div><div>In practice, the workload of each k-point differs, even if npool is a divisor, there is additional imbalance in the calculation.</div><div>So select <span class="gmail-LI gmail-ng gmail-Vt gmail-Vs">npool as a divisor is a recommendation for getting better performance instead of a requirement.<br></span></div><div><br></div><div>Ye<br></div><div></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">===================<br>
Ye Luo, Ph.D.<br>Computational Science Division & Leadership Computing Facility<br>
Argonne National Laboratory</div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 5, 2021 at 5:16 PM Andrew Xu <<a href="mailto:andrewaccount@gmail.com">andrewaccount@gmail.com</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="ltr"><div>Hi users,</div><div><br></div><div>Does npool need to divide the number of k-points after symmetry operations are performed? In a tutorial I saw online (<a href="https://materials.prace-ri.eu/497/7/QE__main_strategies_of_parallelization_and_levels_of_parallelisms.pdf" target="_blank">https://materials.prace-ri.eu/497/7/QE__main_strategies_of_parallelization_and_levels_of_parallelisms.pdf</a>): "By definition, npools must be a divisor of the total number of k-points."</div><div><br></div><div>In a calculation I ran (relevant output below), I accidentally sent npool = 16, which does not divide the total number of k points after symmetry operations (35), but I got no errors. Am I misunderstanding something here?<br></div><div><br></div><div>Best,</div><div>Andrew</div><div><br></div><div>------------------------------<br><br>     Parallel version (MPI & OpenMP), running on      80 processor cores<br>     Number of MPI processes:                80<br>     Threads/MPI process:                     1<br>     K-points division:     npool     =      16<br>     R & G space division:  proc/nbgrp/npool/nimage =       5<br>     Reading input from <a href="http://pw_oncv_pbe0.in" target="_blank">pw_oncv_pbe0.in</a><br><br>     Current dimensions of program PWSCF are:<br>     Max number of different atomic species (ntypx) = 10<br>     Max number of k-points (npk) =  40000<br>     Max angular momentum in pseudopotentials (lmaxx) =  3<br><br>     IMPORTANT: XC functional enforced from input :<br>     Exchange-correlation      = PBE0 ( 6  4  8  4 0 0)<br>     EXX-fraction              =        0.25<br>     Any further DFT definition will be discarded<br>     Please, verify this is what you really want<br><br><br>     Subspace diagonalization in iterative solution of the eigenvalue problem:<br>     a serial algorithm will be used<br><br>     EXX: setup a grid of 512 q-points centered on each k-point<br>     (set verbosity='high' to see the list)<br> <br>     Parallelization info<br>     --------------------<br>     sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW<br>     Min         194     194     58                 4548     4548     756<br>     Max         196     196     59                 4550     4550     759<br>     Sum         973     973    293                22743    22743    3791<br> <br><br><br>     bravais-lattice index     =            1<br>     lattice parameter (alat)  =       7.1240  a.u.<br>     unit-cell volume          =     361.5528 (a.u.)^3<br>     number of atoms/cell      =            4<br>     number of atomic types    =            2<br>     number of electrons       =        46.00<br>     number of Kohn-Sham states=           26<br>     kinetic-energy cutoff     =      60.0000  Ry<br>     charge density cutoff     =     240.0000  Ry<br>     cutoff for Fock operator  =     240.0000  Ry<br>     convergence threshold     =      1.0E-08<br>     mixing beta               =       0.7000<br>     number of iterations used =            8  plain     mixing<br>     Exchange-correlation      = PBE0 ( 6  4  8  4 0 0)<br>     EXX-fraction              =        0.25<br></div><div>...<br><br>     atomic species   valence    mass     pseudopotential<br>        O              6.00    15.99940     O ( 1.00)<br>        W             28.00   183.85000     W ( 1.00)<br><br>     48 Sym. Ops., with inversion, found<br><br><br><br>   Cartesian axes<br><br>     site n.     atom                  positions (alat units)<br>         1           W   tau(   1) = (   0.0000000   0.0000000   0.0000000  )<br>         2           O   tau(   2) = (   0.0000000   0.5000000   0.0000000  )<br>         3           O   tau(   3) = (   0.5000000   0.0000000   0.0000000  )<br>         4           O   tau(   4) = (   0.0000000   0.0000000   0.5000000  )<br><br>     number of k points=    35<br>                       cart. coord. in units 2pi/alat<br>        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0039062<br>        k(    2) = (   0.0000000   0.0000000   0.1250000), wk =   0.0234375<br>        k(    3) = (   0.0000000   0.0000000   0.2500000), wk =   0.0234375<br>        k(    4) = (   0.0000000   0.0000000   0.3750000), wk =   0.0234375<br>        k(    5) = (   0.0000000   0.0000000  -0.5000000), wk =   0.0117188<br>        k(    6) = (   0.0000000   0.1250000   0.1250000), wk =   0.0468750<br>        k(    7) = (   0.0000000   0.1250000   0.2500000), wk =   0.0937500<br>        k(    8) = (   0.0000000   0.1250000   0.3750000), wk =   0.0937500<br>        k(    9) = (   0.0000000   0.1250000  -0.5000000), wk =   0.0468750<br>        k(   10) = (   0.0000000   0.2500000   0.2500000), wk =   0.0468750<br>        k(   11) = (   0.0000000   0.2500000   0.3750000), wk =   0.0937500<br>        k(   12) = (   0.0000000   0.2500000  -0.5000000), wk =   0.0468750<br>        k(   13) = (   0.0000000   0.3750000   0.3750000), wk =   0.0468750<br>        k(   14) = (   0.0000000   0.3750000  -0.5000000), wk =   0.0468750<br>        k(   15) = (   0.0000000  -0.5000000  -0.5000000), wk =   0.0117188<br>        k(   16) = (   0.1250000   0.1250000   0.1250000), wk =   0.0312500<br>        k(   17) = (   0.1250000   0.1250000   0.2500000), wk =   0.0937500<br>        k(   18) = (   0.1250000   0.1250000   0.3750000), wk =   0.0937500<br>        k(   19) = (   0.1250000   0.1250000  -0.5000000), wk =   0.0468750<br>        k(   20) = (   0.1250000   0.2500000   0.2500000), wk =   0.0937500<br>        k(   21) = (   0.1250000   0.2500000   0.3750000), wk =   0.1875000<br>        k(   22) = (   0.1250000   0.2500000  -0.5000000), wk =   0.0937500<br>        k(   23) = (   0.1250000   0.3750000   0.3750000), wk =   0.0937500<br>        k(   24) = (   0.1250000   0.3750000  -0.5000000), wk =   0.0937500<br>        k(   25) = (   0.1250000  -0.5000000  -0.5000000), wk =   0.0234375<br>        k(   26) = (   0.2500000   0.2500000   0.2500000), wk =   0.0312500<br>        k(   27) = (   0.2500000   0.2500000   0.3750000), wk =   0.0937500<br>        k(   28) = (   0.2500000   0.2500000  -0.5000000), wk =   0.0468750<br>        k(   29) = (   0.2500000   0.3750000   0.3750000), wk =   0.0937500<br>        k(   30) = (   0.2500000   0.3750000  -0.5000000), wk =   0.0937500<br>        k(   31) = (   0.2500000  -0.5000000  -0.5000000), wk =   0.0234375<br>        k(   32) = (   0.3750000   0.3750000   0.3750000), wk =   0.0312500<br>        k(   33) = (   0.3750000   0.3750000  -0.5000000), wk =   0.0468750<br>        k(   34) = (   0.3750000  -0.5000000  -0.5000000), wk =   0.0234375<br>        k(   35) = (  -0.5000000  -0.5000000  -0.5000000), wk =   0.0039062<br><br>     Dense  grid:    22743 G-vectors     FFT dimensions: (  36,  36,  36)<br><br>     Estimated max dynamical RAM per process >   14760.85MB<br><br>     Estimated total allocated dynamical RAM > 1180867.90MB</div><div>....<br></div></div>
_______________________________________________<br>
Quantum ESPRESSO is supported by MaX (<a href="http://www.max-centre.eu" rel="noreferrer" target="_blank">www.max-centre.eu</a>)<br>
users mailing list <a href="mailto:users@lists.quantum-espresso.org" target="_blank">users@lists.quantum-espresso.org</a><br>
<a href="https://lists.quantum-espresso.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.quantum-espresso.org/mailman/listinfo/users</a></blockquote></div>