LOBPCG


Locally Optimal Block Preconditioned Conjugate Gradient is a matrix-free method for finding the largest eigenvalues and the corresponding eigenvectors of a symmetric positive definite generalized eigenvalue problem
for a given pair of complex Hermitian or real symmetric matrices, where
the matrix is also assumed positive-definite.

Background

in 1948 proposed calculating the smallest eigenvalue of a symmetric matrix by steepest descent using a direction of a scaled gradient of a Rayleigh quotient in a scalar product, with the step size computed by minimizing the Rayleigh quotient in the linear span of the vectors and, i.e. in a locally optimal manner. Samokish proposed applying a preconditioner to the residual vector to generate the preconditioned direction and derived asymptotic, as approaches the eigenvector, convergence rate bounds. D'yakonov suggested spectrally equivalent preconditioning and derived non-asymptotic convergence rate bounds. Block locally optimal multi-step steepest descent for eigenvalue problems was described in. Local minimization of the Rayleigh quotient on the subspace spanned by the current approximation, the current residual and the previous approximation, as well as its block version, appeared in. The preconditioned version was analyzed in and.

Main features

Single-vector version

The method performs an iterative maximization of the generalized Rayleigh quotient
which results in finding largest eigenpairs of
The direction of the steepest ascent, which is the gradient, of the generalized Rayleigh quotient is positively proportional to the vector
called the eigenvector residual. If a preconditioner is available, it is applied to the residual and gives the vector
called the preconditioned residual. Without preconditioning, we set
and so. An iterative method
or, in short,
is known as preconditioned steepest ascent, where the scalar
is called the step size. The optimal step size can be determined by maximizing the Rayleigh quotient, i.e.,
,
in which case the method is called locally optimal. To further accelerate the convergence of the locally optimal preconditioned steepest ascent, one can add one extra vector to the two-term recurrence relation to make it three-term:
. The maximization/minimization of the Rayleigh quotient in a 3-dimensional subspace can be performed numerically by the Rayleigh–Ritz method.
As the iterations converge, the vectors and become nearly linearly dependent, making the Rayleigh–Ritz method numerically unstable in the presence of round-off errors. It is possible to substitute the vector with an explicitly computed difference making the Rayleigh–Ritz method more stable; see.
This is a single-vector version of the LOBPCG method—one of possible generalization of the preconditioned conjugate gradient linear solvers to the case of symmetric eigenvalue problems. Even in the trivial case and the resulting approximation with will be different from that obtained by the Lanczos algorithm, although both approximations will belong to the same Krylov subspace.

Block version

Iterating several approximate eigenvectors together in a block in a similar locally optimal fashion, gives the full block version of the LOBPCG. It allows robust computation of eigenvectors corresponding to nearly-multiple eigenvalues.

Convergence theory and practice

LOBPCG by construction is guaranteed to minimize the Rayleigh quotient not slower than the block steepest gradient descent, which has a comprehensive convergence theory. Every eigenvector is a stationary point of the Rayleigh quotient, where the gradient vanishes. Thus, the gradient descent may slow down in a vicinity of any eigenvector, however, it is guaranteed to either converge to the eigenvector with a linear convergence rate or, if this eigenvector is a saddle point, the iterative Rayleigh quotient is more likely to drop down below the corresponding eigenvalue and start converging linearly to the next eigenvalue below. The worst value of the linear linear convergence rate has been determined and depends on the relative gap between the eigenvalue and the rest of the matrix spectrum and the quality of the preconditioner, if present.
For a general matrix, there is evidently no way to predict the eigenvectors and thus generate the initial approximations that always work well. The iterative solution by LOBPCG may be sensitive to the initial eigenvectors approximations, e.g., taking longer to converge slowing down as passing intermediate eigenpairs. Moreover, in theory, one cannot guarantee convergence necessarily to the smallest eigenpair, although the probability of the miss is zero. A good quality random Gaussian function with the zero mean is commonly the default in LOBPCG to generate the initial approximations. To fix the initial approximations, one can select a fixed seed for the random number generator.
In contrast to the Lanczos method, LOBPCG rarely exhibits asymptotic superlinear convergence in practice.

Partial [Principal component analysis] (PCA) and [Singular Value Decomposition] (SVD)

LOBPCG can be trivially adopted for computing several largest singular values and the corresponding singular vectors, e.g., for iterative computation of PCA, for a data matrix with zero mean, without explicitly computing the covariance matrix, i.e. in matrix-free fashion. The main calculation is evaluation of a function of the product of the covariance matrix and the block-vector that iteratively approximates the desired singular vectors. PCA needs the largest eigenvalues of the covariance matrix, while LOBPCG is typically implemented to calculate the smallest ones. A simple work-around is to negate the function, substituting for and thus reversing the order of the eigenvalues, since LOBPCG does not care if the matrix of the eigenvalue problem is positive definite or not.
LOBPCG for PCA and SVD is implemented in SciPy since revision 1.4.0

General software implementations

LOBPCG's inventor, Andrew Knyazev, published a reference implementation called Block Locally Optimal Preconditioned Eigenvalue Xolvers with interfaces to PETSc, hypre, and Parallel Hierarchical Adaptive MultiLevel method. Other implementations are available in, e.g., GNU_Octave, MATLAB, Java, Anasazi, SLEPc, SciPy, Julia, MAGMA, Pytorch, Rust, OpenMP and OpenACC, RAPIDS cuGraph and NVIDIA AMGX. LOBPCG is implemented, but not included, in TensorFlow.

Applications

[Material sciences]

LOBPCG is implemented in ABINIT and Octopus. It has been used for multi-billion size matrices by Gordon Bell Prize finalists, on the Earth Simulator supercomputer in Japan. Recent implementations include TTPY, Platypus‐QM, and MFDn.
Hubbard model for strongly-correlated electron systems to understand the mechanism behind the superconductivity uses LOBPCG to calculate the ground state of the Hamiltonian on the K computer.
There are MATLAB and Julia versions of LOBPCG for Kohn-Sham equations and density functional theory using the plain-wave basis.

[Mechanics] and [fluid]s

LOBPCG from BLOPEX is used for preconditioner setup in Multilevel Balancing Domain Decomposition by Constraints solver library BDDCML, which is incorporated into OpenFTL and Flow123d simulator of underground water flow, solute and heat transport in fractured porous media. LOBPCG has been implemented in LS-DYNA.

[Maxwell's equations]

LOBPCG is one of core eigenvalue solvers in PYFEMax and high performance multiphysics finite element software Netgen/NGSolve. LOBPCG from hypre is incorporated into open source lightweight scalable C++ library for finite element methods MFEM, which is used in many projects, including BLAST, XBraid, VisIt, xSDK, the FASTMath institute in SciDAC, and the co-design Center for Efficient Exascale Discretizations in the Exascale computing Project.

[Denoising]

Iterative LOBPCG-based approximate low-pass filter can be used for denoising; see, e.g., to accelerate total variation denoising.

Image segmentation">image segmentation "> Image segmentation

implementation of LOBPCG with multigrid preconditioning has been applied to image segmentation in via spectral graph partitioning using the graph Laplacian for the bilateral filter.

[Data mining]

Software packages scikit-learn and Megaman use LOBPCG to scale spectral clustering and manifold learning via Laplacian eigenmaps to large data sets. NVIDIA has implemented LOBPCG in its nvGRAPH library introduced in CUDA 8.