Andrew Knyazev, Software & Simulation
Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX)

BLOPEX is a package, written in C, that at present includes only one eigenxolver, Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG). BLOPEX supports parallel MPI-based computations through an abstract layer. The complex arithmetic is not yet supported in BLOPEX C codes, but is available for MATLAB codes.

The core of BLOPEX is the archive blopex_abstract.tgz, which contains the eigenxolvers codes and can be compiled into the BLOPEX library, using the sample makefiles provided.

To test the basic functionality of the BLOPEX library, we include the archive blopex_serial.tgz with a simple serial test driver (preinstalled LAPACK is required).

BLOPEX is incorporated in the HYPRE package from CASC of LLNL thanks to their generous support. Sample BLOPEX-Hypre tests are the lines in Hypre test/TEST_ij/*.jobs and test/TEST_struct/*.jobs that contain -lobpcg option. For the reference only, we provide the archive blopex_hypre.tgz, which contains the most recent files already included in Hypre.

BLOPEX is also availabe as an external block to the PETSc package from Mathematics and Computer Science Division of ANL. The BLOPEX-PETSc archive blopex_petsc.tgz is provided here for the reference only. Download the latest PETSc and configure it with
./config/configure.py --download-hypre=1 --download-blopex=1
options to use BLOPEX-PETSc with Hypre preconditioning. Sample BLOPEX-PETSc test drivers are in the PETSc src/contrib/blopex directory.

Finally, BLOPEX is available in and for MATLAB as the archive blopex_matlab.tgz, which contains the MATLAB sources of the BLOPEX eigenxolvers (also available from MathWorks) and the MATLAB interface to the C code of blopex_abstract.tgz.

Main features:
a matrix-free iterative method for computing several extreme eigenpairs of symmetric positive generalized eigenproblems;
a user-defined symmetric positive preconditioner (a good preconditioner for a stiffness matrix works well for the corresponding eigenvalue problem, too!);
robustness with respect to random initial approximations, variable preconditioners, and ill-conditioning of the stiffness matrix;
nearly optimal convergence speed.
Numerical comparisons suggest that LOBPCG is a genuine analog for eigenproblems of the standard preconditioned conjugate gradient method for symmetric linear systems.

The LOBPCG algorithm is presented in the paper Andrew Knyazev, Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method. SIAM Journal on Scientific Computing 23 (2001), no. 2, pp. 517-541.

This project is in progress. Please visit my Preconditioned Eigensolvers Web page for more info.

The BLOPEX package is supported. Please contact me ASAP if you find any bugs.

Andrew Knyazev andrew.knyazev(at)ucdenver.edu

Department of Mathematics, University of Colorado Denver
P.O. Box 173364, Campus Box 170, Denver, CO 80217-3364.
Street Address: 1250 14th St.. Room 540, Denver CO 80202
Phone: (303) 556-8442. Fax: (303) 556-8550

There have been 11916  connections to this page from outside UCD network since August 2006.
Xolver and Eigenxolver (copywrited by Andrew Knyazev)
Parts of this material are based upon work supported by the National Science Foundation under Grant DMS 0612751. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.