Skip to content

sg0/Elemental

 
 

Repository files navigation

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 download instructions, but note that 0.85 wil be the first release containing sparse-direct support.

Documentation

The documentation for Elemental is built using Sphinx and the Read the Docs Theme

Unique features

Elemental supports a wide collection of distributed-memory functionality, including:

  • Dense and sparse Interior Point Methods for linear and quadratic programs
  • Support for dense and sparse basis pursuit, Lasso, SVM, etc.
  • 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
  • Spectral Divide and Conquer Schur decomposition and Hermitian EVD
  • Many algorithms for Singular-Value soft-Thresholding (SVT)
  • Tall-skinny QR decompositions
  • Hermitian matrix functions
  • Sign-based Lyapunov/Ricatti/Sylvester solvers

License

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.

Related open-source projects

Distributed dense linear algebra:

Distributed sparse-direct linear algebra:

Distributed linear algebra Frameworks

Convex optimization

Dependencies

Intranodal linear algebra

Intranodal graph partitioning

  • METIS
  • ParMETIS (Note: support is currently not enabled due to the restrictive license)

Internodal linear algebra

Internodal communication

Python interface

C++ visualization

  • Qt5 (optional for visualization from C++)

Build system

About

Distributed-memory dense linear algebra

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 80.9%
  • Python 11.1%
  • C 5.1%
  • Objective-C 1.5%
  • CMake 0.9%
  • TeX 0.3%
  • Other 0.2%