Performance of linear and cubic-scaling solvers based on modular implementation of the orbital minimization method in the SIESTA code
Performance of recently implemented linear and cubic-scaling solvers based on the orbital minimization method (OMM) in the SIESTA code is compared with the standard diagonalization approach. This modular implementation relies on the use of external libraries, such as MatrixSwitch, libOMM (both from Electronic Structure Library), DBCSR and ScaLAPACK, that efficiently deal with linear algebra and parallelization issues. Large-scale molecular dynamics simulations are carried out for a boron nitride layer as an example. It is shown that kinetic energy preconditioning or Cholesky factorization considerably improve performance of cubic-scaling OMM with dense matrices and it becomes faster than diagonalization. Using sparse matrices and localized wavefunctions, linear scaling with system size is achieved. For diagonalization and cubic-scaling OMM with kinetic energy preconditioning, the crossovers with linear-scaling methods are observed at about 700 and 1200 atoms, respectively. Good CPU scaling is observed for OMM with sparse matrices handled using the DBCSR library. The optimal block sizes for wavefunctions and basis functions in this case are around 10.