LOBPCG: Difference between revisions
m Various citation & identifier cleanup (removing ASIN when ISBNs are present links per Help:Citation Style 1#Identifiers), plus WP:GENFIXES |
Citation bot (talk | contribs) m Alter: pages. Add: doi, pages, issue, volume, journal, arxiv, format, class, url. Removed parameters. You can use this bot yourself. Report bugs here. |
||
Line 7: | Line 7: | ||
==Background== |
==Background== |
||
[[Kantorovich]] in 1948 proposed calculating the smallest [[eigenvalue]] <math>\lambda_1</math> of a symmetric matrix <math>A</math> by [[steepest descent]] using a direction <math>r = Ax-\lambda (x)</math> of a scaled [[gradient]] of a [[Rayleigh quotient]] <math>\lambda(x) = (x, Ax)/(x, x)</math> in a [[scalar product]] <math>(x, y) = x'y</math>, with the step size computed by minimizing the Rayleigh quotient in the [[linear span]] of the vectors <math>x</math> and <math>w</math>, i.e. in a locally optimal manner. Samokish<ref name="S58">{{Cite journal| title = The steepest descent method for an eigenvalue problem with semi-bounded operators| journal = Izvestiya Vuzov, Math.| issue = 5| pages = 105–114| year = 1958| last1 = Samokish| first1 = B.A. }}</ref> proposed applying a [[preconditioner]] <math>T</math> to the residual vector <math>r</math> to generate the preconditioned direction <math>w = T r</math> and derived asymptotic, as <math>x</math> approaches the [[eigenvector]], convergence rate bounds. D'yakonov suggested<ref name="D">{{cite book |title= Optimization in solving elliptic problems |last= D'yakonov |first= E. G. |year= 1996 |publisher= CRC-Press |isbn= 978-0-8493-2872-5 |pages=592}}</ref> spectrally equivalent [[preconditioning]] and derived non-asymptotic convergence rate bounds. Block locally optimal multi-step steepest descent for eigenvalue problems was described in.<ref name="CW">{{Cite book| title = Lanczos algorithms for large symmetric eigenvalue computations. Vol. 1 (Reprint of the 1985 original)| year = 2002| last1 = Cullum| first1 = Jane K.| last2 = Willoughby| first2 = Ralph A.| publisher = [[Society for Industrial and Applied Mathematics]]}}</ref> 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.<ref name="K87">{{Cite journal| title = Convergence rate estimates for iterative methods for mesh symmetric eigenvalue problem| journal = Soviet J. Numerical Analysis and Math. Modelling| volume = 2| number =5| pages = 371–396| year = 1987| last1 = Knyazev | first1 = Andrew V. }}</ref> The preconditioned version was analyzed in <ref name="K91">{{Cite journal| title = A preconditioned conjugate gradient method for eigenvalue problems and its implementation in a subspace| journal = International Ser. Numerical Mathematics, v. 96, Eigenwertaufgaben in Natur- und Ingenieurwissenschaften und ihre numerische Behandlung, Oberwolfach 1990, Birkhauser| pages = 143–154| year = 1991| last1 = Knyazev | first1 = Andrew V. }}</ref> and.<ref name="K98">{{Cite journal| title = Preconditioned eigensolvers - an oxymoron?| journal = [[Electronic Transactions on Numerical Analysis]]| volume = 7| pages = 104–123| year = 1998| last1 = Knyazev | first1 = Andrew V. }}</ref> |
[[Kantorovich]] in 1948 proposed calculating the smallest [[eigenvalue]] <math>\lambda_1</math> of a symmetric matrix <math>A</math> by [[steepest descent]] using a direction <math>r = Ax-\lambda (x)</math> of a scaled [[gradient]] of a [[Rayleigh quotient]] <math>\lambda(x) = (x, Ax)/(x, x)</math> in a [[scalar product]] <math>(x, y) = x'y</math>, with the step size computed by minimizing the Rayleigh quotient in the [[linear span]] of the vectors <math>x</math> and <math>w</math>, i.e. in a locally optimal manner. Samokish<ref name="S58">{{Cite journal| title = The steepest descent method for an eigenvalue problem with semi-bounded operators| journal = Izvestiya Vuzov, Math.| issue = 5| pages = 105–114| year = 1958| last1 = Samokish| first1 = B.A. }}</ref> proposed applying a [[preconditioner]] <math>T</math> to the residual vector <math>r</math> to generate the preconditioned direction <math>w = T r</math> and derived asymptotic, as <math>x</math> approaches the [[eigenvector]], convergence rate bounds. D'yakonov suggested<ref name="D">{{cite book |title= Optimization in solving elliptic problems |last= D'yakonov |first= E. G. |year= 1996 |publisher= CRC-Press |isbn= 978-0-8493-2872-5 |pages=592|url= https://books.google.com/books?id=0_D1eXbWBgMC }}</ref> spectrally equivalent [[preconditioning]] and derived non-asymptotic convergence rate bounds. Block locally optimal multi-step steepest descent for eigenvalue problems was described in.<ref name="CW">{{Cite book| title = Lanczos algorithms for large symmetric eigenvalue computations. Vol. 1 (Reprint of the 1985 original)| year = 2002| last1 = Cullum| first1 = Jane K.| last2 = Willoughby| first2 = Ralph A.| publisher = [[Society for Industrial and Applied Mathematics]]}}</ref> 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.<ref name="K87">{{Cite journal| title = Convergence rate estimates for iterative methods for mesh symmetric eigenvalue problem| journal = Soviet J. Numerical Analysis and Math. Modelling| volume = 2| number =5| pages = 371–396| year = 1987| last1 = Knyazev | first1 = Andrew V. }}</ref> The preconditioned version was analyzed in <ref name="K91">{{Cite journal| title = A preconditioned conjugate gradient method for eigenvalue problems and its implementation in a subspace| journal = International Ser. Numerical Mathematics, v. 96, Eigenwertaufgaben in Natur- und Ingenieurwissenschaften und ihre numerische Behandlung, Oberwolfach 1990, Birkhauser| pages = 143–154| year = 1991| last1 = Knyazev | first1 = Andrew V. }}</ref> and.<ref name="K98">{{Cite journal| title = Preconditioned eigensolvers - an oxymoron?| journal = [[Electronic Transactions on Numerical Analysis]]| volume = 7| pages = 104–123| year = 1998| last1 = Knyazev | first1 = Andrew V. }}</ref> |
||
==Main features<ref name="K2017">{{cite arxiv| title = Recent implementations, applications, and extensions of the Locally Optimal Block Preconditioned Conjugate Gradient method (LOBPCG)| eprint = 1708.08354| year = 2017| last1 = Knyazev | first1 = Andrew}}</ref>== |
==Main features<ref name="K2017">{{cite arxiv| title = Recent implementations, applications, and extensions of the Locally Optimal Block Preconditioned Conjugate Gradient method (LOBPCG)| eprint = 1708.08354| year = 2017| last1 = Knyazev | first1 = Andrew| class = cs.NA}}</ref>== |
||
* LOBPCG is [[Matrix-free methods|matrix-free]], i.e. does not require storing the coefficient matrix explicitly, but can accesses the matrix by evaluating matrix-vector products. |
* LOBPCG is [[Matrix-free methods|matrix-free]], i.e. does not require storing the coefficient matrix explicitly, but can accesses the matrix by evaluating matrix-vector products. |
||
* The costs per iteration and the memory use in LOBPCG are competitive with those of the [[Lanczos method]], computing a single extreme eigenpair. |
* The costs per iteration and the memory use in LOBPCG are competitive with those of the [[Lanczos method]], computing a single extreme eigenpair. |
||
Line 58: | Line 58: | ||
(use <math>\arg\min</math> in case of minimizing). The maximization/minimization of the Rayleigh quotient in a 3-dimensional subspace can be performed numerically by the [[Rayleigh–Ritz method]]. |
(use <math>\arg\min</math> in case of minimizing). 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 <math>x^i</math> and <math>x^{i-1}</math> 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 <math>x^{i-1}</math> with an explicitly computed difference <math>p^i=x^{i-1}-x^i</math> making the [[Rayleigh–Ritz method]] more stable; see.<ref name="AK2001">{{Cite journal| doi = 10.1137/S1064827500366124| title = Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method| journal = [[SIAM Journal on Scientific Computing]]| volume = 23| issue = 2| pages = |
As the iterations converge, the vectors <math>x^i</math> and <math>x^{i-1}</math> 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 <math>x^{i-1}</math> with an explicitly computed difference <math>p^i=x^{i-1}-x^i</math> making the [[Rayleigh–Ritz method]] more stable; see.<ref name="AK2001">{{Cite journal| doi = 10.1137/S1064827500366124| title = Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method| journal = [[SIAM Journal on Scientific Computing]]| volume = 23| issue = 2| pages = 517–541| year = 2001| last1 = Knyazev | first1 = Andrew V. | url = http://www-math.cudenver.edu/~aknyazev/research/papers/36612.pdf| format = Submitted manuscript}}</ref> |
||
This is a single-vector version of the LOBPCG method—one of possible generalization of the [[Preconditioner|preconditioned]] [[Conjugate gradient method|conjugate gradient]] linear solvers to the case of symmetric [[eigenvalue]] problems.<ref name="AK2001" /> Even in the trivial case <math>T=I</math> and <math>B=I</math> the resulting approximation with <math>i>3</math> will be different from that obtained by the [[Lanczos algorithm]], although both approximations will belong to the same [[Krylov subspace]]. |
This is a single-vector version of the LOBPCG method—one of possible generalization of the [[Preconditioner|preconditioned]] [[Conjugate gradient method|conjugate gradient]] linear solvers to the case of symmetric [[eigenvalue]] problems.<ref name="AK2001" /> Even in the trivial case <math>T=I</math> and <math>B=I</math> the resulting approximation with <math>i>3</math> will be different from that obtained by the [[Lanczos algorithm]], although both approximations will belong to the same [[Krylov subspace]]. |
||
Line 66: | Line 66: | ||
==General software implementations== |
==General software implementations== |
||
LOBPCG's inventor, [[Andrei Knyazev (mathematician)|Andrew Knyazev]], published an implementation called Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) with interfaces to [[Portable, Extensible Toolkit for Scientific Computation|PETSc]] and [[hypre]].<ref>{{Cite journal | doi = 10.1137/060661624| title = Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) in Hypre and PETSc| journal = SIAM Journal on Scientific Computing| volume = 29| issue = 5| pages = 2224| year = 2007| last1 = Knyazev | first1 = A. V.| last2 = Argentati | first2 = M. E.| last3 = Lashuk | first3 = I.| last4 = Ovtchinnikov | first4 = E. E.| arxiv = 0705.2626}}</ref> Other implementations are available in, e.g., [[Octave]], [[MATLAB]], [[Java (programming language)|Java]], Anasazi ([[Trilinos]]), [[SLEPc]], [[SciPy]], MAGMA<ref>{{Cite journal | url = http://dl.acm.org/citation.cfm?id=2872609 | title = Accelerating the LOBPCG method on GPUs using a blocked sparse matrix vector product| journal = Proceedings of the Symposium on High Performance Computing (HPC '15). Society for Computer Simulation International, San Diego, CA, USA| pages = 75–82| year = 2015| last1 = Anzt| first1 = Hartwig| last2 = Tomov | first2 = Stanimir| last3 = Dongarra | first3 = Jack}}</ref> and [[NVIDIA]] AMGX. |
LOBPCG's inventor, [[Andrei Knyazev (mathematician)|Andrew Knyazev]], published an implementation called Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) with interfaces to [[Portable, Extensible Toolkit for Scientific Computation|PETSc]] and [[hypre]].<ref>{{Cite journal | doi = 10.1137/060661624| title = Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) in Hypre and PETSc| journal = SIAM Journal on Scientific Computing| volume = 29| issue = 5| pages = 2224| year = 2007| last1 = Knyazev | first1 = A. V.| last2 = Argentati | first2 = M. E.| last3 = Lashuk | first3 = I.| last4 = Ovtchinnikov | first4 = E. E.| arxiv = 0705.2626| url = http://arxiv.org/pdf/0705.2626| format = Submitted manuscript}}</ref> Other implementations are available in, e.g., [[Octave]], [[MATLAB]], [[Java (programming language)|Java]], Anasazi ([[Trilinos]]), [[SLEPc]], [[SciPy]], MAGMA<ref>{{Cite journal | url = http://dl.acm.org/citation.cfm?id=2872609 | title = Accelerating the LOBPCG method on GPUs using a blocked sparse matrix vector product| journal = Proceedings of the Symposium on High Performance Computing (HPC '15). Society for Computer Simulation International, San Diego, CA, USA| pages = 75–82| year = 2015| last1 = Anzt| first1 = Hartwig| last2 = Tomov | first2 = Stanimir| last3 = Dongarra | first3 = Jack}}</ref> and [[NVIDIA]] AMGX. |
||
==Applications== |
==Applications== |
||
===[[Material Sciences]]=== |
===[[Material Sciences]]=== |
||
LOBPCG is implemented in [[ABINIT]] (including [[CUDA]] version) and [[Octopus (software)|Octopus]]. It has been used for multi-billion size matrices by [[Gordon Bell Prize]] finalists, on the [[Earth Simulator]] [[supercomputer]] in Japan.<ref>{{Cite conference| doi = 10.1109/SC.2005.1| title = 16.447 TFlops and 159-Billion-dimensional Exact-diagonalization for Trapped Fermion-Hubbard Model on the Earth Simulator| work = Proc. ACM/IEEE Conference on Supercomputing (SC'05)| pages = 44| year = 2005| last1 = Yamada | first1 = S.| last2 = Imamura | first2 = T.| last3 = Machida | first3 = M.| isbn = 1-59593-061-2}}</ref><ref>{{Cite conference| doi = 10.1145/1188455.1188504| title = Gordon Bell finalists I—High-performance computing for exact numerical approaches to quantum many-body problems on the earth simulator| conference = Proc. ACM/IEEE conference on Supercomputing (SC '06)| pages = 47| year = 2006| last1 = Yamada | first1 = S. | last2 = Imamura | first2 = T. | last3 = Kano | first3 = T. | last4 = Machida | first4 = M. | isbn = 0769527000}}</ref> Recent implementations include TTPY,<ref>{{Cite journal | doi = 10.1063/1.4962420| title = Calculating vibrational spectra of molecules using tensor train decomposition| journal = J. Chem. Phys. | volume = 145| year = 2016| issue = 145| pages = 124101| last1 = Rakhuba| first1 = Maxim | last2 = Oseledets | first2 = Ivan| bibcode = 2016JChPh.145l4101R| arxiv =1605.08422}}</ref> Platypus‐QM,<ref>{{Cite journal | doi = 10.1002/jcc.24318 | title = Development of massive multilevel molecular dynamics simulation program, platypus (PLATform for dYnamic protein unified simulation), for the elucidation of protein functions| journal = J. Comput. Chem.| volume = 37| issue = 12| pages = 1125–1132| year = 2016| last1 = Takano| first1 = Yu | last2 = Nakata | first2 = Kazuto| last3 = Yonezawa | first3 = Yasushige| last4 = Nakamura | first4 = Haruki| pmc =4825406}}</ref> and MFDn.<ref>{{Cite |
LOBPCG is implemented in [[ABINIT]] (including [[CUDA]] version) and [[Octopus (software)|Octopus]]. It has been used for multi-billion size matrices by [[Gordon Bell Prize]] finalists, on the [[Earth Simulator]] [[supercomputer]] in Japan.<ref>{{Cite conference| doi = 10.1109/SC.2005.1| title = 16.447 TFlops and 159-Billion-dimensional Exact-diagonalization for Trapped Fermion-Hubbard Model on the Earth Simulator| work = Proc. ACM/IEEE Conference on Supercomputing (SC'05)| pages = 44| year = 2005| last1 = Yamada | first1 = S.| last2 = Imamura | first2 = T.| last3 = Machida | first3 = M.| isbn = 1-59593-061-2}}</ref><ref>{{Cite conference| doi = 10.1145/1188455.1188504| title = Gordon Bell finalists I—High-performance computing for exact numerical approaches to quantum many-body problems on the earth simulator| conference = Proc. ACM/IEEE conference on Supercomputing (SC '06)| pages = 47| year = 2006| last1 = Yamada | first1 = S. | last2 = Imamura | first2 = T. | last3 = Kano | first3 = T. | last4 = Machida | first4 = M. | isbn = 0769527000}}</ref> Recent implementations include TTPY,<ref>{{Cite journal | doi = 10.1063/1.4962420| title = Calculating vibrational spectra of molecules using tensor train decomposition| journal = J. Chem. Phys. | volume = 145| year = 2016| issue = 145| pages = 124101| last1 = Rakhuba| first1 = Maxim | last2 = Oseledets | first2 = Ivan| bibcode = 2016JChPh.145l4101R| arxiv =1605.08422| url = http://arxiv.org/pdf/1605.08422| format = Submitted manuscript}}</ref> Platypus‐QM,<ref>{{Cite journal | doi = 10.1002/jcc.24318 | title = Development of massive multilevel molecular dynamics simulation program, platypus (PLATform for dYnamic protein unified simulation), for the elucidation of protein functions| journal = J. Comput. Chem.| volume = 37| issue = 12| pages = 1125–1132| year = 2016| last1 = Takano| first1 = Yu | last2 = Nakata | first2 = Kazuto| last3 = Yonezawa | first3 = Yasushige| last4 = Nakamura | first4 = Haruki| pmc =4825406}}</ref> and MFDn.<ref>{{Cite journal|arxiv=1609.01689 | title = Accelerating Nuclear Configuration Interaction Calculations through a Preconditioned Block Iterative Eigensolver| journal = Computer Physics Communications| volume = 222| issue = 1| pages = 1–13| year = 2016| last1 = Shao| first1 = Meiyue | display-authors = etal| doi = 10.1016/j.cpc.2017.09.004}}</ref> |
||
[[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]].<ref>{{Cite conference| doi = 10.1007/978-3-319-69953-0_14 | conference = Asian Conference on Supercomputing Frontiers | title = High Performance LOBPCG Method for Solving Multiple Eigenvalues of Hubbard Model: Efficiency of Communication Avoiding Neumann Expansion Preconditioner | work = Yokota R., Wu W. (eds) Supercomputing Frontiers. SCFA 2018. Lecture Notes in Computer Science, vol 10776. Springer, Cham| pages = 243–256| year = 2018| last1 = Yamada | first1 = S.| last2 = Imamura | first2 = T.| last3 = Machida | first3 = M.}}</ref> |
[[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]].<ref>{{Cite conference| doi = 10.1007/978-3-319-69953-0_14 | conference = Asian Conference on Supercomputing Frontiers | title = High Performance LOBPCG Method for Solving Multiple Eigenvalues of Hubbard Model: Efficiency of Communication Avoiding Neumann Expansion Preconditioner | work = Yokota R., Wu W. (eds) Supercomputing Frontiers. SCFA 2018. Lecture Notes in Computer Science, vol 10776. Springer, Cham| pages = 243–256| year = 2018| last1 = Yamada | first1 = S.| last2 = Imamura | first2 = T.| last3 = Machida | first3 = M.}}</ref> |
||
Revision as of 13:08, 24 July 2018
Locally Optimal Block Preconditioned Conjugate Gradient (LOBPCG) is a matrix-free method for finding the largest (or smallest) 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
Kantorovich 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[1] 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[2] spectrally equivalent preconditioning and derived non-asymptotic convergence rate bounds. Block locally optimal multi-step steepest descent for eigenvalue problems was described in.[3] 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.[4] The preconditioned version was analyzed in [5] and.[6]
Main features[7]
- LOBPCG is matrix-free, i.e. does not require storing the coefficient matrix explicitly, but can accesses the matrix by evaluating matrix-vector products.
- The costs per iteration and the memory use in LOBPCG are competitive with those of the Lanczos method, computing a single extreme eigenpair.
- Linear convergence is theoretically guaranteed and practically observed, since local optimality implies that LOBPCG converges at least as fast as the gradient descent method. In numerical tests, LOBPCG typically shows no super-linear convergence.
- LOBPCG blocking allows utilizing highly efficient matrix-matrix operations, e.g., BLAS 3.
- LOBPCG can directly take advantage of preconditioning, in contrast to the Lanczos method. LOBPCG allows variable and non-symmetric as well as fixed and positive definite preconditioning.
- LOBPCG allows warm starts and computes an approximation to the eigenvector on every iteration. It has no numerical stability issues similar to those of the Lanczos method.
- LOBPCG is reasonably easy to implement, so many implementations have appeared.
- LOBPCG general technology can also be viewed as a particular case of generalized block Davidson diagonalization methods with thick restart, or accelerated block gradient descent with plane-search.
- Very large block sizes in LOBPCG become expensive to deal with due to orthogonalizations and the use of the Rayleigh-Ritz method on every iteration.
Algorithm
Single-vector version
The method performs an iterative maximization (or minimization) of the generalized Rayleigh quotient
which results in finding largest (or smallest) 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 (or descent), where the scalar is called the step size. The optimal step size can be determined by maximizing the Rayleigh quotient, i.e.,
(or in case of minimizing), in which case the method is called locally optimal. To further accelerate the convergence of the locally optimal preconditioned steepest ascent (or descent), one can add one extra vector to the two-term recurrence relation to make it three-term:
(use in case of minimizing). 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.[8]
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.[8] 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.[8] It allows robust computation of eigenvectors corresponding to nearly-multiple eigenvalues.
General software implementations
LOBPCG's inventor, Andrew Knyazev, published an implementation called Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) with interfaces to PETSc and hypre.[9] Other implementations are available in, e.g., Octave, MATLAB, Java, Anasazi (Trilinos), SLEPc, SciPy, MAGMA[10] and NVIDIA AMGX.
Applications
LOBPCG is implemented in ABINIT (including CUDA version) and Octopus. It has been used for multi-billion size matrices by Gordon Bell Prize finalists, on the Earth Simulator supercomputer in Japan.[11][12] Recent implementations include TTPY,[13] Platypus‐QM,[14] and MFDn.[15] 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.[16]
LOBPCG is one of core eigenvalue solvers in PYFEMax, NGSolve, and MFEM.
Iterative LOBPCG-based approximate low-pass filter can be used for denoising; see,[17] e.g., to accelerate total variation denoising.
Image Segmentation
Hypre implementation of LOBPCG with multigrid preconditioning has been applied to image segmentation in [18] via spectral graph partitioning using the graph Laplacian for the bilateral filter.
Software package Megaman uses LOBPCG to scale manifold learning algorithms to large data sets.[19] NVIDIA has implemented[20] LOBPCG in its nvGRAPH library introduced in CUDA 8.
References
- ^ Samokish, B.A. (1958). "The steepest descent method for an eigenvalue problem with semi-bounded operators". Izvestiya Vuzov, Math. (5): 105–114.
- ^ D'yakonov, E. G. (1996). Optimization in solving elliptic problems. CRC-Press. p. 592. ISBN 978-0-8493-2872-5.
- ^ Cullum, Jane K.; Willoughby, Ralph A. (2002). Lanczos algorithms for large symmetric eigenvalue computations. Vol. 1 (Reprint of the 1985 original). Society for Industrial and Applied Mathematics.
- ^ Knyazev, Andrew V. (1987). "Convergence rate estimates for iterative methods for mesh symmetric eigenvalue problem". Soviet J. Numerical Analysis and Math. Modelling. 2 (5): 371–396.
- ^ Knyazev, Andrew V. (1991). "A preconditioned conjugate gradient method for eigenvalue problems and its implementation in a subspace". International Ser. Numerical Mathematics, v. 96, Eigenwertaufgaben in Natur- und Ingenieurwissenschaften und ihre numerische Behandlung, Oberwolfach 1990, Birkhauser: 143–154.
- ^ Knyazev, Andrew V. (1998). "Preconditioned eigensolvers - an oxymoron?". Electronic Transactions on Numerical Analysis. 7: 104–123.
- ^ Knyazev, Andrew (2017). "Recent implementations, applications, and extensions of the Locally Optimal Block Preconditioned Conjugate Gradient method (LOBPCG)". arXiv:1708.08354 [cs.NA].
- ^ a b c Knyazev, Andrew V. (2001). "Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method" (Submitted manuscript). SIAM Journal on Scientific Computing. 23 (2): 517–541. doi:10.1137/S1064827500366124.
- ^ Knyazev, A. V.; Argentati, M. E.; Lashuk, I.; Ovtchinnikov, E. E. (2007). "Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) in Hypre and PETSc" (Submitted manuscript). SIAM Journal on Scientific Computing. 29 (5): 2224. arXiv:0705.2626. doi:10.1137/060661624.
- ^ Anzt, Hartwig; Tomov, Stanimir; Dongarra, Jack (2015). "Accelerating the LOBPCG method on GPUs using a blocked sparse matrix vector product". Proceedings of the Symposium on High Performance Computing (HPC '15). Society for Computer Simulation International, San Diego, CA, USA: 75–82.
- ^ Yamada, S.; Imamura, T.; Machida, M. (2005). 16.447 TFlops and 159-Billion-dimensional Exact-diagonalization for Trapped Fermion-Hubbard Model on the Earth Simulator. Proc. ACM/IEEE Conference on Supercomputing (SC'05). p. 44. doi:10.1109/SC.2005.1. ISBN 1-59593-061-2.
- ^ Yamada, S.; Imamura, T.; Kano, T.; Machida, M. (2006). Gordon Bell finalists I—High-performance computing for exact numerical approaches to quantum many-body problems on the earth simulator. Proc. ACM/IEEE conference on Supercomputing (SC '06). p. 47. doi:10.1145/1188455.1188504. ISBN 0769527000.
- ^ Rakhuba, Maxim; Oseledets, Ivan (2016). "Calculating vibrational spectra of molecules using tensor train decomposition" (Submitted manuscript). J. Chem. Phys. 145 (145): 124101. arXiv:1605.08422. Bibcode:2016JChPh.145l4101R. doi:10.1063/1.4962420.
- ^ Takano, Yu; Nakata, Kazuto; Yonezawa, Yasushige; Nakamura, Haruki (2016). "Development of massive multilevel molecular dynamics simulation program, platypus (PLATform for dYnamic protein unified simulation), for the elucidation of protein functions". J. Comput. Chem. 37 (12): 1125–1132. doi:10.1002/jcc.24318. PMC 4825406.
- ^ Shao, Meiyue; et al. (2016). "Accelerating Nuclear Configuration Interaction Calculations through a Preconditioned Block Iterative Eigensolver". Computer Physics Communications. 222 (1): 1–13. arXiv:1609.01689. doi:10.1016/j.cpc.2017.09.004.
- ^ Yamada, S.; Imamura, T.; Machida, M. (2018). High Performance LOBPCG Method for Solving Multiple Eigenvalues of Hubbard Model: Efficiency of Communication Avoiding Neumann Expansion Preconditioner. Asian Conference on Supercomputing Frontiers. Yokota R., Wu W. (eds) Supercomputing Frontiers. SCFA 2018. Lecture Notes in Computer Science, vol 10776. Springer, Cham. pp. 243–256. doi:10.1007/978-3-319-69953-0_14.
- ^ Knyazev, A.; Malyshev, A. (2015). Accelerated graph-based spectral polynomial filters. 2015 IEEE 25th International Workshop on Machine Learning for Signal Processing (MLSP), Boston, MA. pp. 1–6. doi:10.1109/MLSP.2015.7324315.
- ^ Knyazev, Andrew V. (2003). Boley; Dhillon; Ghosh; Kogan (eds.). Modern preconditioned eigensolvers for spectral image segmentation and graph bisection (PDF). Clustering Large Data Sets; Third IEEE International Conference on Data Mining (ICDM 2003) Melbourne, Florida: IEEE Computer Society. pp. 59–62.
- ^ McQueen, James; et al. (2016). "Megaman: Scalable Manifold Learning in Python". Journal of Machine Learning Research. 17 (148): 1–5.
- ^ Naumov, Maxim (2016). "Fast Spectral Graph Partitioning on GPUs". NVIDIA Developer Blog.
External links
- LOBPCG code in MATLAB
- LOBPCG code in Octave
- LOBPCG code in SciPy
- LOBPCG code in Java at Google Code
- LOBPCG in Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) at Bitbucket
- LOBPCG in Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) at Google Code (retiring)