02/20/2014: Elemental 0.83¶
New Functionality¶
Fundamental additions¶
Preliminary routines for the high-performance computation of pseudospectra
Distributed blocked reductions to lower/upper bidiagonal/Hessenberg form are now both fully supported
Large redesign of the Matrix and DistMatrix classes which includes support for arbitrary submatrix manipulation
Minor/incremental improvements¶
More performant and robust SDC via: try/catch guards around the matrix-sign functions, avoidance of unnatural process team splits, the introduction of many more accuracy and convergence tuning parameters, and the ability to optionally print status updates
Support was added for pivot metadata caching (this will eventually have a large effect on the performance of Clique)
Row and column pivot applications now support every matrix distribution
The QuasiDiagonal{Scale,Solve} routines were greatly extended
AlignWith no longer has an effect when the alignments are unchanged
Added Demmel, Fox-Li, and Helmholtz PML matrices
HermitianTridiagEig is now a routine
Instrumentation/visualization/testing¶
Added support for BMP/JPG/PNG/etc. visualization via Qt5
Colormaps can now be modified at runtime
The
-no-gui
option is now supported so that Qt5 can be used to write images to file even when no display server is runningPreliminary support for reading/writing matrices to/from file
Maintenance¶
Library bugfixes¶
Fixed bugs in SymmetricInverse, QuasiDiagonal{Scale,Solve}, and HermitianInertia
Fixed bug in Pseudoinverse scaling (also affected Skeleton)
Fixed edgecases in TwoNormEstimate
Fixed a bug in parallel one-norm computation
Fixed bugs in Matrix::Conjugate and several diagonal alignments
Fixed parallel Helmholtz matrix generation
Avoided assumption that VCComm members have the same rank in the owning group
Fixed bugs in {[VR,STAR],[STAR,VR]} <- [CIRC,CIRC] and [STAR,MR] <- [MC,MR] redistributions
Fixed a bug in the Trmm driver (noticed by Hal Finkel)
Maintenance/syntax¶
“ResizeTo” was shortened to “Resize”
A
DEBUG_ONLY
macro was added to replace#ifndef RELEASE
guardsVariadic versions of {Logic,Runtime}Error were added
The computation of Householder reflectors was greatly simplified and the library now further breaks with LAPACK convention for complex reflectors so that zeros are introduced with (I-tau v v’) rather than (I-conj(tau) v v’)
Matrix view-types have been simplified
Documentation¶
The DistMatrix class finally now has fairly complete documentation
The
lapack-like/
folder’s new organization is now reflected in the documentationThe REFERENCES file is now in bibtex form
Build system¶
Support for Intel compilers (>= 14.0.1) has been re-enabled
C++11 compiler flags are now automatically detected for most compilers
The configuration test for
MPI_Comm_f2c
was fixedDrivers are now recompiled (rather than just relinked) when headers change
Vagrant files were added for Ubuntu 13.10 (Saucy)
Multiple toolchain files were added
Python interface¶
Several more routines were added (e.g., from the qr namespace)
MPI and Threading¶
Avoiding complex MPI by default due to two students running into problems with OpenMPI’s support for complex MPI_SUM
Thanks¶
Hal Finkel for reporting a mistake in a Trmm driver
Jed Brown and Satish Balay for reporting several instances of unused variables/typedefs