Elemental version 0.87.7

@poulson poulson released this Feb 7, 2017

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 haimav@post.tau.ac.il
    • 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 balay@msc.anl.gov
    • Numerous bug reports for code cleanliness (including one effecting 0.87.2)
  • David Blom davidsblom@gmail.com
    • Added MaxAbs implementations
  • Jake Bolewski jakebolewski@gmail.com
    • Made Python support much more robust
    • Fixed CMake OSX RPATH handling
    • Helped introduce Travis CI
  • Rodrigo Canales rodrigo.canales@rwth-aachen.de
    • Fixed bugs in mkl::Trrk and xgemmt calls
  • Jiahao Chen jiahao@mit.edu
    • Set up the CMake testing framework
    • Helped introduce Travis CI
  • Martin Copik mcopik@gmail.com
    • Fixed PMRRR double lock free bug
    • Fixed ScaLAPACK GFORTRAN_LIB configuration bug
    • Fixed METIS and ParMETIS configuration bugs
  • Aidan Dang danga@student.unimelb.edu.au
    • Reported bugs in SVD and submitted fix for 64-bit integer build
    • Contributed operator* for El::RangeEl::Int
  • Ron Estrin restrin@stanford.edu
    • Substantially improved the LLL performance
  • Jeff Hammond jeff.science@gmail.com
    • Help with numerous toolchain issues (especially the Intel compilers)
  • Yves Ineichen iff@yvesineichen.com
    • Contributed towards the current Debian packaging process
    • Numerous useful bug reports
  • Georgios Kollias gkollias@us.ibm.com
    • Reported int -> BigFloat conversion issue effecting 0.87.2
  • Ryan Lewis me@ryanlewis.net
    • Spearheaded the Fedora packaging
    • Setting up the (soon-to-be-integrated) Jenkins CI
  • Yingzhou (Ryan) Li ryanli@stanford.edu
    • Added proper CMake project exports
    • Several bug reports on process grids with viewing processes
  • Tim Moon tym1@stanford.edu
  • Andreas Noack andreasnoackjensen@gmail.com
    • Helped introduce Travis CI
  • Jack Poulson jack.poulson@gmail.com
    • 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 Mukundhan.Selvam@mscsoftware.com
    • Bug reports for sparse-direct solvers
    • Bug reports for the Intel compilers
  • Barry Smith bsmith@mcs.anl.gov
    • Numerous bug reports on code cleanliness
  • Hong Zhang hzhang@mcs.anl.gov
    • Numerous bug reports on code cleanliness

Downloads