[QE-users] time consuming band structure calculation for a supercell

Lorenzo Paulatto paulatz at gmail.com
Mon Dec 14 15:10:40 CET 2020


p.s. If you can use a newer version of QE that does calculation="ppcg" I 
found it to be much (i.e. 6x) faster in this case

cheers

On 2020-12-14 14:50, Lorenzo Paulatto wrote:
> Hello,
>
> I've had a look at the output, and a part for the cutoff which appears 
> a bit too high (you are probably safe with 50/400Ry of 
> ecutwfc/ecutrho) I only see to small problems:
>
> 1. the scf calculation is using 6 pools with 10 k-points, which means 
> that 4 pools have twice as much work to do as the others. In the ideal 
> case, the number of pools should be a divisor of the number of 
> k-points (i.e. 2, 5 or 10 in your case). Also, it is recommended that 
> the number of CPUs in a pool are a divisor of the number of CPUs on 
> each computing node, to avoid too much inter-node communication. In 
> your case, the best choice with 72 CPUs (on two nodes?) could be 2 
> pools. You may gain a bit of time, but this is not going to change a 
> lot. You should consider using more CPUs if you have the budget. For 
> example, 10 pools of 12 or 18 CPUs each.
>
> 2. The bands calculation runs on 12 CPUs and has a single k-point, 
> while each pool of the SCF one has up to 2 k-points. We would expect 
> that the bands calculation take about half as an scf step, i.e. about 
> 50 seconds. However, the bands calculation has some trouble 
> diagonalizing the Hamiltonian, you see it writes:
>
>      ethr =  2.76E-12,  avg # of iterations =120.0
>
> while typically the very last scf diagonalization is
>
>      ethr =  2.98E-12,  avg # of iterations =  3.3
>
> This is because, the scf calculation can start with a very good guess 
> good the wavefunction, while the bands calculation does not. It is 
> still faster than doing the entire scf procedure, but just by a factor 
> ~2.3
>
> Fortunately, you do not usually need the eigenvalues to a precision of 
> 10e-12. You can set the threshold by hand using the keyword 
> diago_thr_init, I guess 1.d-6 should be tight enough. However, double 
> check what you get in output, because I am half-suspecting that it may 
> be over-written by the value in the restart file
>
> cheers
>


More information about the users mailing list