<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>