Skip to content

Releases: elemental/Elemental

Elemental version 0.87.7

07 Feb 04:15
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed a bug in the affine QP IPM initialization
  • Fixed a bug in the El::SparseInvCov lambda definition for El::HermitianFunction
  • Fixed a bug in the sparse Dantzig Selector implementation
  • Added operator* for integer index ranges
  • Fixed bit-rot in many python IPM example drivers
  • Fixed CMAKE_INSTALL_LIBDIR usage in ElVars.in
  • Fixed El::UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (avoiding undefined ref's)
  • Fixed call to El::lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp
  • Avoided python global variables (which were not propagating on recent versions of OS X)
  • Avoided compiler error from implicit conversions between El::Int and El::BigFloat for member variables
  • Simplified src/core/mpi_register.cpp and avoided unfreed MPI memory
  • Avoided unused variables
  • Added support for reading El::SparseMatrix and El::DistSparseMatrix in El::MATRIX_MARKET format
  • Fixed 64-bit integer builds
  • Fixed bug in promotion of El::Quad
  • Fixed a substantial amount of bit-rot in the Python interface and its examples
  • Fixed CTest on Mac OS X
  • Extended interface of El::LUMod to support any low-rank modification
  • Added missing implementation of sequential dense equilibration so that the sequential dense Interior Point Methods now function
  • Extended more routines from accepting El::ElementalMatrix to the more general El::AbstractDistMatrix
  • Renamed DEBUG_ONLY to EL_DEBUG_ONLY, RELEASE_ONLY to EL_RELEASE_ONLY, and DEBUG_CSE to EL_DEBUG_CSE and ensured that they function without a preceding import of the El namespace
  • Removed invalid calls to std::numeric_limits for non-STL datatypes
  • Greatly curated the example drivers (e.g., by always making explicit use of the El namespace)
  • Added (and incorporated) an El::MakeFunction helper for converting lambdas to an appropriate std::function

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OS X due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error in the 5.x and 6.x series of GCC. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds. Further, Homebrew's GCC 4.9 does not properly handle exceptions (see Homebrew/homebrew-core#7837 (comment)).
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes
  • Intel compilers before version 17 update 1 will not properly compile Elemental (see Issue #177 )
  • Compiling MPICH 3.2 with Clang on recent versions of OS X can lead to segfaults in MPID_Request_create within an MPI_Alltoallv call (see Issue #200 )
  • MPICH must be configured with the --enable-two-level-namespace option on Mac OS X (see Issue #203 )

Significant contributors for this release

  • Aron Ahmadia
    • Reported bit-rot in the python example drivers
  • Haim Avron [email protected]
    • Numerous useful bug reports (including one effecting 0.87.0 and one for 0.87.6)
    • Contributed towards the current Debian packaging process
  • Satish Balay [email protected]
    • Numerous bug reports for code cleanliness (including one effecting 0.87.2)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Aidan Dang [email protected]
    • Reported bugs in SVD and submitted fix for 64-bit integer build
    • Contributed operator* for El::RangeEl::Int
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias [email protected]
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith [email protected]
    • Numerous bug reports on code cleanliness
  • Hong Zhang [email protected]
    • Numerous bug reports on code cleanliness

Elemental version 0.87.6

17 Dec 02:41
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)
  • Fixed call to lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp
  • Avoided python global variables (which were not propagating on recent versions of OS X)
  • Avoided compiler error from implicit conversions between El::Int and El::BigFloat for member variables
  • Simplified src/core/mpi_register.cpp and avoided unfreed MPI memory
  • Avoided unused variables
  • Added support for reading SparseMatrix and DistSparseMatrix in MATRIX_MARKET format
  • Fixed 64-bit integer builds
  • Fixed bug in promotion of Quad
  • Fixed a substantial amount of bit-rot in the Python interface and its examples
  • Fixed CTest on Mac OS X
  • Extended interface of LUMod to support any low-rank modification
  • Added missing implementation of sequential dense equilibration so that the sequential dense Interior Point Methods now function
  • Extended many more routines from accepting ElementalMatrix to the more general AbstractDistMatrix
  • Renamed DEBUG_ONLY to EL_DEBUG_ONLY, RELEASE_ONLY to EL_RELEASE_ONLY, and DEBUG_CSE to EL_DEBUG_CSE and ensured that they function without a preceding import of the El namespace
  • Removed invalid calls to std::numeric_limits for non-STL datatypes
  • Greatly curated the example drivers (e.g., by always making explicit use of the El namespace)
  • Added (and incorporated) an El::MakeFunction helper for converting lambdas to an appropriate std::function

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OS X due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error in the 5.x and 6.x series of GCC. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds. Further, Homebrew's GCC 4.9 does not properly handle exceptions (see Homebrew/homebrew-core#7837 (comment)).
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes
  • Intel compilers before version 17 update 1 will not properly compile Elemental (see Issue #177 )
  • Compiling MPICH 3.2 with Clang on recent versions of OS X can lead to segfaults in MPID_Request_create within an MPI_Alltoallv call (see Issue #200 )
  • MPICH must be configured with the --enable-two-level-namespace option on Mac OS X (see Issue #203 )

Significant contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • Satish Balay [email protected]
    • Numerous bug reports for code cleanliness (including one effecting 0.87.2)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Aidan Dang [email protected]
    • Reported bugs in SVD and submitted fix for 64-bit integer build
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias [email protected]
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith [email protected]
    • Numerous bug reports on code cleanliness
  • Hong Zhang [email protected]
    • Numerous bug reports on code cleanliness

Elemental version 0.87.5

28 Nov 04:12
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)
  • Fixed call to lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp
  • Avoided python global variables (which were not propagating on recent versions of OS X)
  • Avoided compiler error from implicit conversions between El::Int and El::BigFloat for member variables
  • Simplified src/core/mpi_register.cpp and avoided unfreed MPI memory
  • Avoided unused variables
  • Added support for reading SparseMatrix and DistSparseMatrix in MATRIX_MARKET format
  • Fixed 64-bit integer builds
  • Fixed bug in promotion of Quad
  • Fixed a substantial amount of bit-rot in the Python interface and its examples
  • Fixed CTest on Mac OS X

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OS X due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes
  • Intel compilers before version 17 update 1 will not properly compile Elemental (see Issue #177 )
  • Compiling MPICH 3.2 with Clang on recent versions of OS X can lead to segfaults in MPID_Request_create within an MPI_Alltoallv call (see Issue #200 )
  • MPICH must be configured with the --enable-two-level-namespace option on Mac OS X (see Issue #203 )

Significant contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • Satish Balay [email protected]
    • Numerous bug reports for code cleanliness (including one effecting 0.87.2)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Aidan Dang [email protected]
    • Reported bugs in SVD and submitted fix for 64-bit integer build
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias [email protected]
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith [email protected]
    • Numerous bug reports on code cleanliness
  • Hong Zhang [email protected]
    • Numerous bug reports on code cleanliness

Elemental version 0.87.4

23 Nov 23:30
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)
  • Fixed call to lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp
  • Avoided python global variables (which were not propagating on recent versions of OS X)
  • Avoided compiler error from implicit conversions between El::Int and El::BigFloat for member variables
  • Simplified src/core/mpi_register.cpp and avoided unfreed MPI memory
  • Avoided unused variables
  • Added support for reading SparseMatrix and DistSparseMatrix in MATRIX_MARKET format

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OSX due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes
  • Intel compilers before version 17 update 1 will not properly compile Elemental (see Issue #177 )
  • Compiling MPICH with Clang on recent versions of OS X can lead to segfaults in MPID_Request_create within an MPI_Alltoallv call (see Issue #200 )

Significant contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • Satish Balay [email protected]
    • Numerous bug reports for code cleanliness (including one effecting 0.87.2)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias [email protected]
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith [email protected]
    • Numerous bug reports on code cleanliness
  • Hong Zhang [email protected]
    • Numerous bug reports on code cleanliness

Elemental version 0.87.3

23 Nov 07:22
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)
  • Fixed call to lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp
  • Avoided python global variables (which were not propagating on recent versions of OS X)
  • Avoided compiler error from implicit conversions between El::Int and El::BigFloat for member variables

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OSX due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes
  • Intel compilers before version 17 update 1 will not properly compile Elemental (see Issue #177 )
  • Compiling MPICH with Clang on recent versions of OS X can lead to segfaults in MPID_Request_create within an MPI_Alltoallv call (see Issue #200 )

Significant contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • Satish Balay [email protected]
    • Numerous bug reports for code cleanliness
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias [email protected]
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith [email protected]
    • Numerous bug reports on code cleanliness
  • Hong Zhang [email protected]
    • Numerous bug reports on code cleanliness

Elemental version 0.87.2

22 Nov 07:16
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)
  • Fixed call to lin_solve::ScaLAPACKHelper in src/lapack_like/solve/Linear.cpp

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OSX due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes

Major contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers

Elemental version 0.87.1

22 Nov 06:05
Compare
Choose a tag to compare

Minor changes since 0.87.0

  • Fixed UpdatedMappedDiagonal prototype in El/blas_like/level1/decl.hpp (to avoid undefined references)

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OSX due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes

Major contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports (including one effecting 0.87.0)
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers

Elemental version 0.87

21 Nov 05:57
Compare
Choose a tag to compare

Notable functionality additions

  • (Arbitrary-precision) real and complex Lenstra/Lenstra/Lovasz (LLL) lattice reduction
  • (Arbitrary-precision) real and complex Block Korkine-Zolotarev (BKZ) and various enumeration heuristic extensions (BKZ 2.0 and y-sparse enumeration)
  • (Arbitrary-precision) distributed divide-and-conquer real symmetric tridiagonal EVD
  • (Arbitrary-precision) distributed divide-and-conquer bidiagonal SVD
  • (Arbitrary-precision) distributed Aggressive Early Deflation Hessenberg QR algorithms
  • (Arbitrary-precision) distributed high-performance level 3 BLAS complex triangular eigenvector computation
  • (Arbitrary-precision) distributed high-performance pseudospectra
  • (Arbitrary-precision) distributed real and complex sparse linear solvers (including a special interface for symmetric quasi-semidefinite matrices)
  • (Arbitrary-precision) distributed real and complex generalized sparse least squares solvers (including LSE and GLM)
  • (Arbitrary-precision) distributed dense and sparse Linear, Quadratic, and Second-Order Cone Programming

Packaging additions

Relevant toolchain bugs

  • GCC Release builds are (by default) blocked on OSX due to -O3 optimizations leading to a stack_not_16_byte_aligned_error error. Please see #181 for a more detailed discussion. The CMake flag -D EL_IGNORE_OSX_GCC_ALIGNMENT_PROBLEM=ON will prevent the error for OSX GCC Release builds.
  • OpenMPI versions before 1.8.1 are prevented by the CMake configuration due to bugs in OpenMPI 1.6.5's handling of complex datatypes

Major contributors for this release

  • Haim Avron [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • David Blom [email protected]
    • Added MaxAbs implementations
  • Jake Bolewski [email protected]
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales [email protected]
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen [email protected]
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik [email protected]
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Ron Estrin [email protected]
    • Substantially improved the LLL performance
  • Jeff Hammond [email protected]
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen [email protected]
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Ryan Lewis [email protected]
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li [email protected]
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon [email protected]
  • Andreas Noack [email protected]
    • Helped introduce Travis CI
  • Jack Poulson [email protected]
    • Added Aggressive Early Deflation Hessenberg QR implementation
    • Added Divide and Conquer bidiagonal SVD
    • Added Divide and Conquer real symmetric tridiagonal EVP
    • Added lattice reduction functionality
    • Added Interior Point Methods and sparse generalized least squares methods
    • Extended El::Complex class to support DoubleDouble, QuadDouble, Quad, and BigFloat
    • Added MPI support for BigFloat
    • Introduced LaunchPad PPA
    • Adminstrivia and making the build system more robust
  • Mukundhan Selvam [email protected]
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers

Version 0.85

28 Oct 06:58
Compare
Choose a tag to compare

Elemental 0.85

The official release for version 0.85 of Elemental is now available:
libelemental.org/pub/releases/Elemental-0.85.tgz

Added functionality

  • Sparse-direct Cholesky and Bunch-Kaufman due to merging Clique into Elemental
  • Sparse-direct least squares, ridge regression, and Tikhonov regularization
  • Sparse Herk and various other BLAS1-like routines
  • A (nearly full) manually-constructed C interface
  • A (nearly full) manually-constructed Python interface, including extensions of Display functionality to matplotlib (for matrices) and networkx (for graphs)
  • Support for Read, Write, and ReadWrite matrix proxies so that routines implemented for specific datatypes and/or data distributions can be extended to more general datatypes and arbitrary distribution choices
  • Essentially all distributed routines in the library were generalized to AbstractDistMatrix for convenience (using proxies)
  • Single-precision Hermitian eigensolvers are now supported (via proxies which convert to double-precision for PMRRR)
  • Added Three-valued and Bernoulli, GEPPGrowth and Druinsky-Toledo, Fourier-Identity ("spikes and sines") and Walsh-Identity ("spikes and Hadamard") matrices
  • Added ability to compute coherence
  • Added ability to use operator() to extract contiguous submatrices (and converted library)
  • Extended control of SVD and LDL via new SVDCtrl and LDLCtrl structures
  • Improved performance of IO routines when ColStride() and/or RowStride() are 1

Bug fixes

  • Fixed a variety of compilation errors which did not appear with g++
  • Fixed an (uncommon) bug in distributed HermitianFrobeniusNorm
  • Added missing shrink of the phase vector in qr::BusingerGolub
  • Added missing scalar argument to Matrix::UpdateDiagonal
  • Fixed Ehrenfest matrix generation
  • Fixed indexing of Householder phases in sequential Bidiag
  • Fixed offset used by rq::ExplicitTriang
  • Fixed BlockDistMatrix version of MATRIX_MARKET Read
  • Fixed BLAS wrappers for complex herk, her2k, her, and her2
  • Fixed PURE/HYBRID CMake detection (thanks to Richard Boyd)

Refactoring

  • Removed MakeTriangular (due to the more general MakeTrapezoidal)
  • Replaced AxpyTriangle with AxpyTrapezoid
  • Added a control structure for Bisect
  • Significantly refactored/simplified Trr2k
  • Removed spurious integer argument to TriW
  • Removed Riemann matrix due to vague definition (and overlap with Redheffer)
  • Removed hyphens in directory names to avoid python conflict

Name changes

  • Renamed namespace "elem" to "El", and "elem.hpp" to "El.hpp"
  • Moved auxiliary PMRRR headers into pmrrr/ subfolder
  • "Pseudospectra" -> {"SpectralPortrait","SpectralWindow","SpectralCloud"}
  • Better organization/naming for explicit QR/RQ/LQ factorizations

Thanks

  • Richard Boyd (of GTRI) for reporting the PURE/HYBRID configuration detection problem
  • Field van Zee (of UT Austin) for clarifying the {c,z}her2 and {c,z}her2k scalar argument conventions
  • Rodrigo Canales for noticing and fixing several missing static instantiations
  • Yingzhou (Ryan) Li for reporting the vecLib/Accelerate issue

Relevant unmerged forks

Elemental 0.84

04 Jun 22:44
Compare
Choose a tag to compare

elemental

Documentation:
[HTML] http://libelemental.org/documentation/0.84/
[PDF] http://libelemental.org/documentation/elem-0.84.pdf

The significant changes since release 0.83 are listed below (and a number of bugs in the release candidate for 0.84 were fixed).

New Functionality

Fundamental additions

  • Low-rank Cholesky up-/down-dating (CholMod)
  • Rank-one updates to LU factorizations (LUMod)
  • Added Generalized RQ and QR factorizations and associated General Linear Model (GLM) and Equality-constrained Least Squares (LSE) solvers
  • Pseudospectral computations can now be driven by various kernels, including
    multi-shift Hessenberg/(quasi-)triangular solves. There is also now support a
    variety of configurations for outputting snapshots of the results
  • Multi-shift Hessenberg solves (MultiShiftHessSolve)
  • Multi-shift quasi-triangular solves (MultiShiftQuasiTrsm)
  • Quasi-triangular solves (QuasiTrsv/QuasiTrsm)
  • Hyperbolic Householder transforms
  • Basic support for a block version of DistMatrix (BlockDistMatrix)
  • Support for parallel Schur decompositions via ScaLAPACK's Hessenberg QR algs.
  • Support for redistributing between DistMatrix and BlockDistMatrix [MC,MR] dists.
  • All user-level routines now use permutation vectors instead of pivot vectors
  • Alternating Direction Method of Multipliers (ADMM) implementations of Basis Pursuit, Linear and Quadratic Programs, and Sparse Inverse Covariance Selection

Minor/incremental improvements

  • Added {lq,rq,qr}::SolveAfter
  • Added SymmetricSolve and HermitianSolve
  • Support for converting real (quasi-triangular) Schur forms to complex
    (triangular) form
  • Support for computing the eigenvalues of quasi-triangular matrices
  • LQ/QR/RQ factorizations now force positive (or zero) diagonal entries in the
    resulting triangular matrix
  • Grid now supports both row-major and column-major orderings
  • Support for diagonal scalings of trapezoidal matrices (DiagonalScaleTrapezoid)
  • Added Global{Col,Row} and Local{Col,Row}Offset member functions to DistMatrix
  • Norm and Max now support more data distributions
  • Min and Max implementations (which do not use the absolute values)
  • Added Bull's Head, Hatano-Nelson, random Helmholtz Green's, Trefethen,
    Triangle, and Whale matrices.

Instrumentation/visualization/testing

  • More file formats for Read and Write (e.g., ASCII and MATRIX_MARKET)
  • Display windows are now strictly sized according to the size of the matrix

Maintenance

Library bugfixes

  • Fixed several small memory leaks in Grid
  • AbstractDistMatrix::Empty() now recomputes shifts to ensure the matrix is kept
    in a legal state
  • Moves of non-views to views are now converted to copies
  • Fixed deflation bug in PMRRR when no eigenvectors are requested
  • Fixed bugs in ApplyPackedReflectors, QuasiDiagonalScale, TriangularInverse, Trr, and Trsv

Maintenance/syntax

  • Algorithmic options are now handled via control structures with default
    constructors
  • Preprocessor definitions and macros now namespaced with "ELEM"
  • Grid argument to DistMatrix::[Locked]Attach was moved before the dependent
    alignment arguments
  • Added a 'Mod' routine which supports modular arithmetic with negative integers
  • Copy assignments now return non-const references
  • Move constructors are now "noexcept"
  • Checks were added to ensure DistMatrix views are not improperly aligned
  • PMRRR (and therefore Elemental) no longer requires a Fortran compiler to build
  • Renamed "ShiftedTrsm" to "MultiShiftTrsm" and placed in BLAS3
  • Renamed "Min" and "Max" to "MinAbs" and "MaxAbs"
  • Renamed "Inertia" to "InertiaType" and "HermitianInertia" to "Inertia"
  • The unnecessary Orientation arguments were removed from QuasiDiagonal{Scale,Solve}
  • All interfaces now assume the usage of 'left' diagonals, which use an offset relative to the diagonal which contains the upper-left entry

Documentation

  • Documentation for BlockDistMatrix is currently missing

Build system

  • Several bugs fixed in detection of support for C++11 random number generation
  • Configuration tests moved into separate files

Python interface

  • The python interface was removed due to SWIG's lack of C++11 support,
    the lack of a maintainer for the interface, and the fact that a manual
    C interface is planned.

Thanks

  • Jed Brown for suggesting the preprocessor namespacing
  • Drew Lewis for reporting the TriangularInverse bug