BLOPEX
Encyclopedia
The Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) (Knyazev et al, 2007) is a suite of routines for the scalable
(parallel
) solution of eigenvalue problems. Its object-oriented design allows easy portability. Currently available built-in interfaces are Hypre
, PETSc, MATLAB
, GNU Octave
, and a serial stand-alone version. BLOPEX supports real
and complex
arithmetic, and long integers. The current version is double-precision. The single-precision is not yet supported. Hypre
and PETSc interfaces use the Message Passing Interface
(MPI) standard for all message-passing communication. The most recent stable version of BLOPEX is 1.1, released in 2010.
SLEPc
and PHAML have interfaces to call BLOPEX eigensolvers. DevTools includes some BLOPEX code.
Scalability
In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...
(parallel
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
) solution of eigenvalue problems. Its object-oriented design allows easy portability. Currently available built-in interfaces are Hypre
Hypre
The Parallel High Performance Preconditioners is a library of routines for scalable solution of linear systems. The built-in BLOPEX package in addition allows solving eigenvalue problems. The main strength of Hypre is availability of high performance parallel multigrid preconditioners for both...
, PETSc, MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
, GNU Octave
GNU Octave
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command-line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB...
, and a serial stand-alone version. BLOPEX supports real
Real number
In mathematics, a real number is a value that represents a quantity along a continuum, such as -5 , 4/3 , 8.6 , √2 and π...
and complex
Complex number
A complex number is a number consisting of a real part and an imaginary part. Complex numbers extend the idea of the one-dimensional number line to the two-dimensional complex plane by using the number line for the real part and adding a vertical axis to plot the imaginary part...
arithmetic, and long integers. The current version is double-precision. The single-precision is not yet supported. Hypre
Hypre
The Parallel High Performance Preconditioners is a library of routines for scalable solution of linear systems. The built-in BLOPEX package in addition allows solving eigenvalue problems. The main strength of Hypre is availability of high performance parallel multigrid preconditioners for both...
and PETSc interfaces use the Message Passing Interface
Message Passing Interface
Message Passing Interface is a standardized and portable message-passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers...
(MPI) standard for all message-passing communication. The most recent stable version of BLOPEX is 1.1, released in 2010.
SLEPc
SLEPc
SLEPc is a software library for the parallel computation of eigenvalues and eigenvectors of large, sparse matrices. It can be seen as a module of PETSc that provides solvers for different types of eigenproblems, including linear and quadratic, as well as the SVD. It uses the MPI standard for...
and PHAML have interfaces to call BLOPEX eigensolvers. DevTools includes some BLOPEX code.
Features
BLOPEX provides the following features:- Parallel vectors and matrices (using HypreHypreThe Parallel High Performance Preconditioners is a library of routines for scalable solution of linear systems. The built-in BLOPEX package in addition allows solving eigenvalue problems. The main strength of Hypre is availability of high performance parallel multigrid preconditioners for both...
and PETSc interfaces) - Direct use of Scalable parallel preconditioners
- LOBPCGLOBPCGLocally Optimal Block Preconditioned Conjugate Gradient Method is an algorithm, proposed in , for finding the largest eigenvalues and the corresponding eigenvectors of a symmetric positive definite generalized eigenvalue problem.A x= \lambda B x,for a given pair of complex Hermitian or real...
iterative eigenvalue solver (Knyazev, 2001) - Portable to UNIXUnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, and WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
(using the PETSc interface) - LGPLGNU Lesser General Public LicenseThe GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
(version 2.1 or above) license