I am testing Quantum ESPRESSO with different values for Npool
and bands
in order to calculate run time.
pools: each image can be subpartitioned into "pools", each taking care of a group of k-points.
bands: each pool is subpartitioned into "band groups", each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). Especially useful for calculations with hybrid functionals.
I took a simple 32-atom supercell of aluminum. Here is the input:
&control
calculation='scf'
restart_mode='from_scratch',
pseudo_dir = '.'
outdir=./tmp/,
prefix='al'
tprnfor = .true.
tstress = .true.
disk_io='none'
/
&system
ibrav= 0, A=4.05, nat= 32, ntyp= 1, ecutwfc =60.0,
occupations='smearing', smearing='marzari-vanderbilt', degauss=0.05
/
&electrons
diagonalization='david'
mixing_beta = 0.7
/
CELL_PARAMETERS alat
2 0 0
0 2 0
0 0 2
ATOMIC_SPECIES
Al 26.98 Al.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS crystal
Al 0.00000000 0.00000000 0.00000000
Al 0.25000000 0.25000000 0.00000000
Al 0.25000000 0.00000000 0.25000000
Al 0.00000000 0.25000000 0.25000000
Al 0.50000000 0.00000000 0.00000000
Al 0.75000000 0.25000000 0.00000000
Al 0.75000000 0.00000000 0.25000000
Al 0.50000000 0.25000000 0.25000000
Al 0.00000000 0.50000000 0.00000000
Al 0.25000000 0.75000000 0.00000000
Al 0.25000000 0.50000000 0.25000000
Al 0.00000000 0.75000000 0.25000000
Al 0.50000000 0.50000000 0.00000000
Al 0.75000000 0.75000000 0.00000000
Al 0.75000000 0.50000000 0.25000000
Al 0.50000000 0.75000000 0.25000000
Al 0.00000000 0.00000000 0.50000000
Al 0.25000000 0.25000000 0.50000000
Al 0.25000000 0.00000000 0.75000000
Al 0.00000000 0.25000000 0.75000000
Al 0.50000000 0.00000000 0.50000000
Al 0.75000000 0.25000000 0.50000000
Al 0.75000000 0.00000000 0.75000000
Al 0.50000000 0.25000000 0.75000000
Al 0.00000000 0.50000000 0.50000000
Al 0.25000000 0.75000000 0.50000000
Al 0.25000000 0.50000000 0.75000000
Al 0.00000000 0.75000000 0.75000000
Al 0.50000000 0.50000000 0.50000000
Al 0.75000000 0.75000000 0.50000000
Al 0.75000000 0.50000000 0.75000000
Al 0.50000000 0.75000000 0.75000000
K_POINTS automatic
11 11 11 0 0 0
Here, I am running on single node with 48 processor with different number of nk
and nb
For example :
mpiexec.hydra -np 48 /USERS/pranav/compilation/q-e-qe-6.8/bin/pw.x -in al.scf.david.in -nk 3 -nb 4
In First study, I varied nk
while fixed nb
=1. Here is the result
nk nb time(sec)
1 1 206
2 1 163
3 1 144
4 1 138
6 1 138
8 1 131
12 1 141
In second run, I fixed nk
at 3 and varied nb
and
Here is the result
nk nb time(sec)
3 1 144
3 2 181
3 4 255
3 8 426
Why is run-time increasing with increase in nb
in second run? I was hoping for decreasing in trend.
Note: QE v6. 8 is compiled with intel-oneapi and internal FFT library