Filter matrix diagonalization
tongli... at gmail.com
Fri Jul 31 17:37:31 CEST 2015
The filer matrix diagonalisation method can speed up your calculations
(using diagonalisation) for large systems (N atoms > ~300, depending on the
system). Basically the method will reduce the basis set size to that of an
optimised single zeta minimum basis at every SCF step based on the
Hamiltonian and density at that step. The speed up comes from the reduced
basis size (as diagonalisation is an N**3 process), although there will be
some cost associated in generating the optimised basis set, involving a
series of fixed sized smaller matrix diagonalisations.
For a random water box, for example, for ~400 atoms (~130 H2O molecules),
our tests has shown around 2 times speedup using AUTO_CUTOFF_SCALE
to 0.4, and over 6 times speed up for 1500 atoms (~500 H2O molecules).
There are several parameters that are important to accuracy and speed.
controls the interaction range around each atom one wants to take into
account during the generation of the optimised basis.
The longer the range, the more accurate is your calculation, but will also
make the optimisation step slower, as well as requiring more memory. The
shorter the range the faster the calculation. At AUTO_CUTOFF_SCALE = 1.0
(default), any atoms with their widest gaussians overlapping each other
will be considered as a neighbour and taken into consideration. I would
recommend to first try AUTO_CUTOFF_SCALE = 0.4.
T if you find the MPI communications dominate your times. The default
value for this parameter differs depending on the version of CP2K you are
using. The most recent version has this set to F.
Further more, as a current limitation, some times, depending on the
symmetry of the system, if AUTO_CUTOFF_SCALE is set too low, the generated
optimised basis may become linearly dependent and cause the calculation to
fail. In this case, you can either increase the value of
FILTER_TEMPERATURE to a higher value, and if that does not help, then
increase AUTO_CUTOFF_SCALE to a larger value. If you are doing calculation
on a non-periodic molecular system, never increase AUTO_CUTOFF_SCALE too
high that all atoms becomes neighbours of all other atoms. If this
happens, then the method will always fail. This does not apply for
If you plan to try out this method, I would recommend use the newest
development version of CP2K, as the implementation is very new, and is
still being improved. At the moment, I am trying to solve this very issue
of linear dependency of optimised orbitals due to symmetry of certain
systems. Also, the performance of the COLLECTIVE_COMMUNICATION
T mode is being improved as well (with a better usage of L2 cache).
I hope this is helpful.
On Monday, 27 July 2015 17:52:17 UTC+1, jiabo wrote:
> Hi CP2K users
> Do you have the experience in using Filter matrix diagonalization
> algorithm in CP2K_INPUT <http://manual.cp2k.org/trunk/CP2K_INPUT.html> /
> FORCE_EVAL <http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL.html> / DFT
> <http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT.html> / SCF
> <http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/SCF.html> /
> section? Comparing to the standard diagonalisation, can it speed up the
> calculation and any limitations it has?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the CP2K-user