SLEPc: Scalable Library for Eigenvalue Problem Computations
Jose E. Roman
GRyCAP - Grupo de Redes y Computacion de Altas Prestaciones
Universidad Politecnica de Valencia, Spain
SLEPc, the Scalable Library for Eigenvalue Problem Computations, is a software
package for the solution of large sparse eigenvalue problems on parallel
computers. It can be used for the solution of problems formulated in either
standard or generalized form, as well as other related problems such as the
singular value decomposition.
The emphasis of the software is on methods and techniques appropriate for
problems in which the associated matrices are sparse, for example, those
arising after the discretization of partial differential equations. Therefore,
most of the methods offered by the library are projection methods or other
methods with similar properties. Some of these methods are Krylov-Schur and
Jacobi-Davidson, to name a few. SLEPc implements these basic methods as well
as more sophisticated algorithms. It also provides built-in support for
spectral transformations such as shift-and-invert.
SLEPc is a general library in the sense that it covers standard and genralized
eigenvalue problems, both Hermitian and non-Hermitian, with either real or
SLEPc is built on top of PETSc, the Portable Extensible Toolkit for Scientific
Computation (http://www.mcs.anl.gov/petsc). It can be considered an extension
of PETSc providing all the functionality necessary for the solution of
eigenvalue problems. This means that PETSc must be previously installed in
order to use SLEPc. PETSc users will find SLEPc very easy to use, since it
enforces the same programming paradigm. For those users which are not familiar
with PETSc yet, our recommendation is to fully understand its basic concepts
before proceeding with SLEPc.
The Users Manual is included in the SLEPc distribution file. It can be found
in directory 'docs' and it contains a general description of the capabilities
of the software. The manual does not include detailed reference information
about individual SLEPc routines. This information is provided in the form of
man pages in HTML format (see 'docs/manual.htm').
The following journal article provides a general description of SLEPc:
 V. Hernandez, J. E. Roman and V. Vidal (2005), SLEPc: A Scalable and
Flexible Toolkit for the Solution of Eigenvalue Problems, ACM Trans. Math.
Softw. 31(3), 351-362.
The installation procedure of SLEPc is very similar to that of PETSc. Briefly,
the environment variable $SLEPC_DIR must be set, then the script 'configure'
is executed and finally the libraries are built with the command 'make'. For
this to work correctly, variable $PETSC_DIR must also be set appropriately.
More detailed information about installation can be found in the Users Manual
or in the SLEPc home page, including instructions for configuring SLEPc to use
external libraries such as ARPACK.
Additional information can be found in the SLEPc home page at the following
Among other things, this site includes information about:
- How to contact the authors for support.
- Software download.
- On-line documentation.
- Mailing list for announcement of new releases.
All questions/comments should be directed to firstname.lastname@example.org.
The development of SLEPc has been partially supported by the following grants:
- Oficina de Ciencia i Tecnologia, Generalitat Valenciana, CTIDB/2002/54.
- Direccio General d'Investigacio i Transferencia de Tecnologia, Generalitat
- Ministerio de Ciencia e Innovacion, TIN2009-07519.
Conditions of Use
Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain
SLEPc is free software: you can redistribute it and/or modify it under the
terms of version 3 of the GNU Lesser General Public License as published by
the Free Software Foundation.
SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
You should have received a copy of the GNU Lesser General Public License
along with SLEPc. If not, see <http://www.gnu.org/licenses/>.