[QE-users] npool

Ye Luo xw111luoye at gmail.com
Wed Jan 6 00:40:07 CET 2021


I think that the statement "npools must be a divisor of the total number of
k-points" in the slides is inaccurate.
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.
npool not being a divisor doesn't cause a correctness issue.
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.
In practice, the workload of each k-point differs, even if npool is a
divisor, there is additional imbalance in the calculation.
So select npool as a divisor is a recommendation for getting better
performance instead of a requirement.

Ye
===================
Ye Luo, Ph.D.
Computational Science Division & Leadership Computing Facility
Argonne National Laboratory


On Tue, Jan 5, 2021 at 5:16 PM Andrew Xu <andrewaccount at gmail.com> wrote:

> Hi users,
>
> Does npool need to divide the number of k-points after symmetry operations
> are performed? In a tutorial I saw online (
> https://materials.prace-ri.eu/497/7/QE__main_strategies_of_parallelization_and_levels_of_parallelisms.pdf):
> "By definition, npools must be a divisor of the total number of k-points."
>
> 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?
>
> Best,
> Andrew
>
> ------------------------------
>
>      Parallel version (MPI & OpenMP), running on      80 processor cores
>      Number of MPI processes:                80
>      Threads/MPI process:                     1
>      K-points division:     npool     =      16
>      R & G space division:  proc/nbgrp/npool/nimage =       5
>      Reading input from pw_oncv_pbe0.in
>
>      Current dimensions of program PWSCF are:
>      Max number of different atomic species (ntypx) = 10
>      Max number of k-points (npk) =  40000
>      Max angular momentum in pseudopotentials (lmaxx) =  3
>
>      IMPORTANT: XC functional enforced from input :
>      Exchange-correlation      = PBE0 ( 6  4  8  4 0 0)
>      EXX-fraction              =        0.25
>      Any further DFT definition will be discarded
>      Please, verify this is what you really want
>
>
>      Subspace diagonalization in iterative solution of the eigenvalue
> problem:
>      a serial algorithm will be used
>
>      EXX: setup a grid of 512 q-points centered on each k-point
>      (set verbosity='high' to see the list)
>
>      Parallelization info
>      --------------------
>      sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW
>      Min         194     194     58                 4548     4548     756
>      Max         196     196     59                 4550     4550     759
>      Sum         973     973    293                22743    22743    3791
>
>
>
>      bravais-lattice index     =            1
>      lattice parameter (alat)  =       7.1240  a.u.
>      unit-cell volume          =     361.5528 (a.u.)^3
>      number of atoms/cell      =            4
>      number of atomic types    =            2
>      number of electrons       =        46.00
>      number of Kohn-Sham states=           26
>      kinetic-energy cutoff     =      60.0000  Ry
>      charge density cutoff     =     240.0000  Ry
>      cutoff for Fock operator  =     240.0000  Ry
>      convergence threshold     =      1.0E-08
>      mixing beta               =       0.7000
>      number of iterations used =            8  plain     mixing
>      Exchange-correlation      = PBE0 ( 6  4  8  4 0 0)
>      EXX-fraction              =        0.25
> ...
>
>      atomic species   valence    mass     pseudopotential
>         O              6.00    15.99940     O ( 1.00)
>         W             28.00   183.85000     W ( 1.00)
>
>      48 Sym. Ops., with inversion, found
>
>
>
>    Cartesian axes
>
>      site n.     atom                  positions (alat units)
>          1           W   tau(   1) = (   0.0000000   0.0000000   0.0000000
>  )
>          2           O   tau(   2) = (   0.0000000   0.5000000   0.0000000
>  )
>          3           O   tau(   3) = (   0.5000000   0.0000000   0.0000000
>  )
>          4           O   tau(   4) = (   0.0000000   0.0000000   0.5000000
>  )
>
>      number of k points=    35
>                        cart. coord. in units 2pi/alat
>         k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0039062
>         k(    2) = (   0.0000000   0.0000000   0.1250000), wk =   0.0234375
>         k(    3) = (   0.0000000   0.0000000   0.2500000), wk =   0.0234375
>         k(    4) = (   0.0000000   0.0000000   0.3750000), wk =   0.0234375
>         k(    5) = (   0.0000000   0.0000000  -0.5000000), wk =   0.0117188
>         k(    6) = (   0.0000000   0.1250000   0.1250000), wk =   0.0468750
>         k(    7) = (   0.0000000   0.1250000   0.2500000), wk =   0.0937500
>         k(    8) = (   0.0000000   0.1250000   0.3750000), wk =   0.0937500
>         k(    9) = (   0.0000000   0.1250000  -0.5000000), wk =   0.0468750
>         k(   10) = (   0.0000000   0.2500000   0.2500000), wk =   0.0468750
>         k(   11) = (   0.0000000   0.2500000   0.3750000), wk =   0.0937500
>         k(   12) = (   0.0000000   0.2500000  -0.5000000), wk =   0.0468750
>         k(   13) = (   0.0000000   0.3750000   0.3750000), wk =   0.0468750
>         k(   14) = (   0.0000000   0.3750000  -0.5000000), wk =   0.0468750
>         k(   15) = (   0.0000000  -0.5000000  -0.5000000), wk =   0.0117188
>         k(   16) = (   0.1250000   0.1250000   0.1250000), wk =   0.0312500
>         k(   17) = (   0.1250000   0.1250000   0.2500000), wk =   0.0937500
>         k(   18) = (   0.1250000   0.1250000   0.3750000), wk =   0.0937500
>         k(   19) = (   0.1250000   0.1250000  -0.5000000), wk =   0.0468750
>         k(   20) = (   0.1250000   0.2500000   0.2500000), wk =   0.0937500
>         k(   21) = (   0.1250000   0.2500000   0.3750000), wk =   0.1875000
>         k(   22) = (   0.1250000   0.2500000  -0.5000000), wk =   0.0937500
>         k(   23) = (   0.1250000   0.3750000   0.3750000), wk =   0.0937500
>         k(   24) = (   0.1250000   0.3750000  -0.5000000), wk =   0.0937500
>         k(   25) = (   0.1250000  -0.5000000  -0.5000000), wk =   0.0234375
>         k(   26) = (   0.2500000   0.2500000   0.2500000), wk =   0.0312500
>         k(   27) = (   0.2500000   0.2500000   0.3750000), wk =   0.0937500
>         k(   28) = (   0.2500000   0.2500000  -0.5000000), wk =   0.0468750
>         k(   29) = (   0.2500000   0.3750000   0.3750000), wk =   0.0937500
>         k(   30) = (   0.2500000   0.3750000  -0.5000000), wk =   0.0937500
>         k(   31) = (   0.2500000  -0.5000000  -0.5000000), wk =   0.0234375
>         k(   32) = (   0.3750000   0.3750000   0.3750000), wk =   0.0312500
>         k(   33) = (   0.3750000   0.3750000  -0.5000000), wk =   0.0468750
>         k(   34) = (   0.3750000  -0.5000000  -0.5000000), wk =   0.0234375
>         k(   35) = (  -0.5000000  -0.5000000  -0.5000000), wk =   0.0039062
>
>      Dense  grid:    22743 G-vectors     FFT dimensions: (  36,  36,  36)
>
>      Estimated max dynamical RAM per process >   14760.85MB
>
>      Estimated total allocated dynamical RAM > 1180867.90MB
> ....
> _______________________________________________
> Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
> users mailing list users at lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20210105/ad9d6e44/attachment.html>


More information about the users mailing list