Filter matrix diagonalization

Lianheng Tong tongli... at
Fri Jul 31 15:37:31 UTC 2015

Hi Jiabo,

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 
<> set 
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.

<> to 
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 
periodic systems.

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.

Best regards,


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 <> / 
> <> / SCF 
> <> / 
> <>  
> section? Comparing to the standard diagonalisation, can it speed up the 
> calculation and any limitations it has?
> Cheers,
> Jiabo 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the CP2K-user mailing list