Elemental is a modern C++ library for distributed-memory dense and sparse-direct linear algebra and optimization. The library was initially released in Elemental: A new framework for distributed memory dense linear algebra and has recently absorbed the functionality from the sparse-direct solver Clique.
Please visit the download page for details about recent and upcoming releases.
The documentation for Elemental is built using Sphinx and the Read the Docs Theme
Elemental supports a wide collection of distributed-memory functionality, including:
Convex optimization:
- Dense and sparse Interior Point Methods for Linear and Quadratic Programs
- Basis Pursuit
- Chebyshev Points
- Dantzig selectors
- LASSO / Basis Pursuit Denoising
- Least Absolute Value regression
- Non-negative Least Squares
- Support Vector Machines
- (1D) Total Variation
- Various prototype dense Alternating Direction Method of Multipliers routines
- Sparse inverse covariance selection
- Robust Principal Component Analysis
- Prototype alternating direction Non-negative Matrix Factorization
Linear algebra:
- Dense and sparse-direct (generalized) Least Squares problems
- Least Squares / Minimum Length
- Tikhonov (and ridge) regression
- Equality-constrained Least Squares
- General (Gauss-Markov) Linear Models
- High-performance pseudospectral computation and visualization
- Quadratic-time low-rank Cholesky and LU modifications
- Bunch-Kaufman and Bunch-Parlett for accurate symmetric factorization
- LU and Cholesky with full pivoting
- Column-pivoted QR and interpolative/skeleton decompositions
- Quadratically Weighted Dynamic Halley iteration for the polar decomposition
- Many algorithms for Singular-Value soft-Thresholding (SVT)
- Tall-skinny QR decompositions
- Hermitian matrix functions
- Prototype Spectral Divide and Conquer Schur decomposition and Hermitian EVD
- Sign-based Lyapunov/Ricatti/Sylvester solvers
All of Elemental is distributed under the terms of the New BSD License, with the exception of METIS 5.1.0, which is distributed under the (equally permissive) Apache License, Version 2.0.
Distributed dense linear algebra:
Distributed sparse-direct linear algebra:
Distributed linear algebra Frameworks
Convex optimization
Intranodal linear algebra
Intranodal graph partitioning
Internodal linear algebra
- Parallel MRRR (packaged with Elemental)
- ScaLAPACK (optional for Hessenberg QR algorithm)
Internodal communication
Python interface
- matplotlib (optional for python matrix visualization)
- NetworkX (optional for python graph visualization)
- NumPy
C++ visualization
- Qt5 (optional for visualization from C++)
Build system