Optimizing the relaxation convergence time


I am running abinit to relax a structure with 50 atoms. I am using 20 CPUs to do parallel computing, but each SCF convergence takes about 7+ hours on average and it takes over 150 cycles to complete the calculation. The total time to complete the calculation of 50 atoms relaxation will be about 2 months. Are there any input parameters I could look at to optimize the calculation to take a shorter time?


Hi A.

From your comment I gather two issues: duration of an SCF step and the number of SCF steps per relaxation step.

First let’s run a couple of check-up questions about your calculations regarding the duration of an SCF step:

  1. Did you perform a scalability test regarding the use of the number of CPUs?
    Is 20 the optimum number of CPUs you can use with this system? ABINIT, generally, performs very well in terms of scaling with the number of CPUs.
    If yes, then skip this test.

  2. Are you running the relaxation with the already converged values for all the relevant parameters, like: ecut, ecutsm, number of kpoints, nband?
    If yes, please consider slightly lower values initially for all these parameters (except ecutsm for which the opposite should be considered), not too far from your desired convergence and then iteratively increase them as you managed to relax within your desired constraints.

  3. Does your system posses a space group symmetry different than P1?
    If yes, does ABINIT recognize your input structure with the correct symmetry within the imposed tolerance? As a side note, please check variable tolsym for that matter.

Related to the number of SCF steps:

  1. Are you dealing with a 3D or a lower dimensional system (2D, 1D, 0D)?
    If it’s a lower dimensional system, make sure that the Coulomb interaction between your system and the periodic images is reduced to a minimum (optimize the non-periodic distance aka vacuum with respect to the total energy).

  2. What is the tolerance for the converged SCF cycle? Also what is the variable that you use for that when concomitantly using ionmov = 2 or 22? For that matter check variable toldff.

5’’. Side note to the relaxation procedure, personally I would start first by relaxing the internal coordinates (optcell = 0 ), and when the internal coordinates relaxation criteria of convergence are met, I would modify optcell to 2.

Good luck,

Thank you so much for your help.