Generated by GPT-5-mini| ARPACK | |
|---|---|
| Name | ARPACK |
| Developer | Lawrence Berkeley National Laboratory; original authors: Richard S. Sutton; contributors: Roger B. Lehoucq, David C. Sorensen |
| Released | 1990s |
| Programming language | Fortran (programming language), C (programming language) |
| Operating system | Unix, Linux, macOS, Microsoft Windows |
| License | BSD licenses |
| Genre | Numerical linear algebra library |
ARPACK
ARPACK is a software library for solving large-scale eigenvalue problems arising in scientific computing, engineered to compute a few eigenvalues and eigenvectors of large sparse matrices. It targets practitioners in fields such as computational physics, computational chemistry, structural engineering, climate science, and data mining, enabling computations that appear in workflows from finite element method simulations to principal component analysis on massive datasets. The library is notable for its implementation of implicitly restarted iterative methods and its integration into many scientific ecosystems.
ARPACK implements iterative algorithms for eigenvalue problems of the form Ax = λx, generalized problems Bx = λCx, and related shift-invert transformations, focusing on sparse and structured matrices encountered in applications like finite element method, boundary element method, and discretizations of partial differential equations such as the Navier–Stokes equations or Helmholtz equation. The project emphasizes memory efficiency and scalability for problems too large for dense eigensolvers used in environments like MATLAB, GNU Octave, or the R Project for Statistical Computing. It can be used alongside libraries such as LAPACK and BLAS and integrated with parallel frameworks like MPI and OpenMP.
ARPACK centers on the Implicitly Restarted Arnoldi Method (IRAM) for nonsymmetric problems and the Implicitly Restarted Lanczos Method (IRLM) for symmetric or Hermitian matrices, building on classical algorithms by Walter Kahan and techniques from Cornelius Lanczos and Arnoldi (V. I.). The package supports real and complex arithmetic, implements shift-invert spectral transformations, and uses polynomial filters and spectral transformations analogous to methods explored in literature by Gene H. Golub, James H. Wilkinson, and Beresford N. Parlett. The implementation in Fortran 77 emphasizes portability; optional bindings leverage C (programming language) wrappers. ARPACK delegates dense operations to LAPACK and optimized kernels to BLAS implementations like Netlib BLAS or vendor libraries from IBM, Intel Corporation and AMD.
ARPACK is accessible through language bindings and interfaces integrated into many ecosystems: MATLAB's eigs leverages ARPACK, SciPy exposes interfaces via scipy.sparse.linalg.eigs and eigsh, and R Project for Statistical Computing packages provide wrappers. High-performance bindings exist for PETSc, Trilinos, SLEPc, and Eigen (C++ library), while community projects connect ARPACK to Julia (programming language), Python (programming language), Fortran (programming language), and C++. It interoperates with file formats and toolchains used by NetCDF, HDF5, and visualization tools such as ParaView and VisIt through scientific application layers. Integration with parallel solvers employs MPI and message-passing runtimes developed in collaborations with centers like Argonne National Laboratory and Oak Ridge National Laboratory.
ARPACK underpins eigenanalysis in disciplines ranging from quantum mechanics and electronic structure calculations (used in workflows with packages like Quantum ESPRESSO and VASP) to modal analysis in aerospace engineering and mechanical engineering (linking to solvers from ANSYS and Nastran). It facilitates dimensionality reduction in machine learning pipelines including large-scale principal component analysis and spectral clustering algorithms implemented in libraries like scikit-learn. Climate and geoscience models built with frameworks such as CESM and WRF utilize ARPACK for stability and bifurcation analysis; network science tools employ it for centrality measures in graphs used by projects like NetworkX and igraph. In computational biology, ARPACK assists in protein dynamics and normal mode analysis in suites like GROMACS and NAMD.
ARPACK offers strong performance for problems where only a few eigenpairs are needed, outperforming dense solvers for matrices arising from discretizations in simulations performed on resources from National Energy Research Scientific Computing Center and regional computing facilities. Its memory footprint is modest compared to full decomposition methods used by ScaLAPACK, but performance depends on efficient matrix-vector products and preconditioning strategies supplied by host applications. Limitations include reduced robustness on highly clustered spectra, sensitivity to shift selection, and challenges with extremely ill-conditioned generalized problems; these motivate alternatives like FEAST Eigenvalue Solver, SLEPc Krylov-Schur methods, and contour-integral approaches developed by researchers at institutions such as Technical University of Denmark and École Polytechnique Fédérale de Lausanne. Parallel scalability is constrained by the inherently sequential nature of the Arnoldi/Lanczos recurrences, prompting hybrid strategies combining ARPACK components with domain decomposition methods from PETSc and algorithms in Trilinos.
ARPACK originated from numerical linear algebra research in the late 20th century, with foundational contributions from researchers affiliated with Lawrence Berkeley National Laboratory and collaborations with national laboratories including Argonne National Laboratory and universities such as University of California, Berkeley and Stanford University. Its development paralleled advances in high-performance computing architectures produced by companies like Intel Corporation and Cray Research (Cray) and was influenced by earlier software in the Netlib repository maintained by Argonne National Laboratory and Oak Ridge National Laboratory. Over decades ARPACK has been maintained through community contributions and incorporated into scientific distributions and package managers overseen by organizations like Python Software Foundation, The R Foundation, and various open-source consortia. The ecosystem around ARPACK continues to evolve with successor projects and research from groups at Lawrence Livermore National Laboratory, Los Alamos National Laboratory, and academic research centers worldwide.
Category:Numerical linear algebra software