
-------------
= ChangeLog =
-------------


Changes from 4.8.2 to 4.8.3
* Fix compilation issues on Windows platforms
* Fix ranlib issue with libseq on MacOSX platforms
* Fix a few problems of uninitialized variables

Changes from 4.8.1 to 4.8.2
* Problem of wrong argument in the call to [sdcz]mumps_246 solved
* Limit occurrence of error -11 in the in-core case
* Problem with the use of SIZE on an unassociated pointer solved
* Problem with distributed solution combined with non-working host solved
* Fix generation of MM matrices 
* Fix of a minor bug in OOC error management
* Fix portability issues on usleep

Changes from 4.8.0 to 4.8.1
* New distributed scaling is now on by default for distributed matrices
* Error management corrected in case of 32-bit overflow during factorization
* SEPARATOR is now defined as "\\" in Windows version
* Bug fix in OOC panel version

Changes from 4.7.3 to 4.8.0
* Parallel scalings algorithms available
* Possibility to dump a matrix in matrix-market format from both
  C and Fortran interfaces
* Correction when dumping a distributed matrix in matrix-market format
* Minor numerical stability problem in some LDL^t parallel
  factorizations corrected.
* Memory usage significantly reduced in both parallel and sequential 
  (limit communication buffers, in-place assembly for assembled matrices,
  overlapping during stack).
* Better alignment properties of mumps_struc.h
* Reduced time for static mapping during the analysis phase.
* Correction in dynamic scheduler
* "Internal error 2 in DMUMPS_26" no more occurs, even if SIZE_SCHUR=0
* Corrections in the management of ICNTL(25), some useful code was
  protected with -Dtry_null_space and not compiled.
* Scaling arrays are now declared real even in complex versions
* Out-of-core functionality storing factors on disk 
* Possibility to tell MUMPS how much memory the package is allowed
  to allocate (ICNTL(23))
* Estimated and effective number of entries in factors returned to user
* API change: MAXS and MAXIS have disappeared from the interface,
  please use ICNTL(14) and ICNTL(23) to control the memory usage
* Error code -11 raised less often, especially in out-of-core executions
* Error code -14 should no more occur
* Memory used at the solve phase is now returned to the user
* Possibility to control the blocking size for multiple right-hand sides
  (strong impact on performance, in particular for out-of-core executions)
* Solved problems of 32-bit integer overflows during analysis related
  to memory estimations.
* New error code -37 related to integer overflows during
  factorization
* Compile one single arithmetic with make s, make d, make c or make z,
  examples are now in examples/, test/ has disappeared.
* Arithmetic-independent parts are isolated into a libmumps_common.a, that
  must now be linked too (see examples/Makefile).

Changes from 4.7.2 to 4.7.3
* detection of null pivots for unsymmetric matrices corrected
* improved pivoting in parallel symmetric solver
* possible problem when Schur on and out-of-core : Schur was splitted
* type of parameters of intrinsic function MAX not compatible in 
  single precision arithmetic versions.
* minor changes for Windows
* correction with reduced RHS functionality in parallel case

Changes from 4.7.1 to 4.7.2
* negative loads suppressed in mumps distribution

Changes from 4.7 to 4.7.1
* Release number in Fortran interface corrected
* "Negative load !!" message replaced by a warning

Changes from 4.6.4 to 4.7
* New functionality: build reduced RHS / use partial solution
* New functionality: detection of zero pivots
* Memory reduced (especially communication buffers)
* Problem of integer overflow "MEMORY_SENT" corrected
* Error code -20 used when receive buffer too small
  (instead of -17 in some cases)
* Erroneous memory access with singular matrices (since 4.6.3) corrected
* Minor bug correction in hybrid scheduler
* Parallel solution step uses less memory
* Performance and memory usage of solution step improved
* String containing the version number now available as a
  component of the MUMPS structure
* Case of error "-9964" has disappeared

Changes from 4.6.3 to 4.6.4
* Avoid name clashes (F_INT, ...) when C interface is used and
  user wants to include, say, smumps_c.h, zmumps_c.h (etc.) at
  the same time
* Avoid large array copies (by some compilers) in distributed
  matrix entry functionality
* Default ordering less dependent on number of processors
* New garbage collector for contribution blocks
* Original matrix in "arrowhead form" on candidate processors
  only (assembled case)
* Corrected bug occurring rarely, on large number of
  processors, and that depended on value of uninitialized
  data
* Parallel LDL^t factorization numerically improved
* Less memory allocation in mapping phase (in some cases)

Changes from 4.6.2 to 4.6.3
* Reduced memory usage for symmetric matrices (compressed CB)
* Reduced memory allocation for parallel executions
* Scheduler parameters for parallel executions modified
* Memory estimates (that were too large) corrected with
  2Dcyclic Schur complement option
* Portability improved (C/Fortran interfacing for strings)
* The situation leading to Warning "RHS associated in MUMPS_301"
  no more occurs.
* Parameters INFO/RINFO from the Scilab/Matlab API are now called
  INFOG/RINFOG in order to match the MUMPS user's guide.

Changes from 4.6.1 to 4.6.2
* Metis ordering now available with Schur option
* Schur functionality correctly working with Scilab interface
* Occasional SIGBUS problem on single precision versions corrected

Changes from 4.6 to 4.6.1
* Problem with hybrid scheduler and elemental matrix entry corrected
* Improved numerical processing of symmetric matrices with quasi-dense rows
* Better use of Blacs/Scalapack on processor grids smaller than MPI_COMM_WORLD
* Block sizes improved for large symmetric matrices

Changes from 4.5.6 to 4.6
* Official release with Scilab and Matlab interfaces available
* Correction in 2x2 pivots for symmetric indefinite complex matrices
* New hybrid scheduler active by default

Changes from 4.5.5 to 4.5.6
* Preliminary developments for an out-of-core code (not yet available)
* Improvement in parallel symmetric indefinite solver
* Preliminary distribution of a SCILAB and a MATLAB interface
  to MUMPS.

Changes from 4.5.4 to 4.5.5
* Improved tree management
* Improved weighted matching preprocessing:
  duplicates allowed, overflow avoided, dense rows
* Improved strategy for selecting default ordering
* Improved node amalgamation

Changes from 4.5.3 to 4.5.4
* Double complex version no more depends on
  double precision version.
* Simplification of some complex indirections in
  mumps_cv.F that were causing difficultiels to
  some compilers.

Changes from 4.5.2 to 4.5.3
* Correction of a minor problem leading to
  INFO(1)=-135 in some cases.

Changes from 4.5.1 to 4.5.2
* correction of two uninitialized variables in
  proportional mapping

Changes from 4.5.0 to 4.5.1
* better management of contribution messages
* minor modifications in symmetric preprocessing step

Changes from 4.4.0 to 4.5.0
* improved numerical features for symmetric indefinite matrices
    - two-by-two pivots
    - symmetric scaling
    - ordering based on compressed graph prserving two by two pivots
    - constrained ordering
* 2D cyclic Schur better validated
* problems resulting from automatic array copies done by compiler corrected
* reduced memory requirement for maximum transversal features

Changes from 4.3.4 to 4.4.0
* 2D block cyclic Schur complement matrix
* symmetric indefinite matrices better handled
* Right-hand side vectors can be sparse
* Solution can be kept distributed on the processors
* METIS allowed for element-entry
* Parallel performance and memory usage improved:
   - load is updated more often for type 2 nodes
   - scheduling under memory constraints
   - reduced message sizes in symmetric case
   - some linear searches avoided when sending contributions
* Avoid array copies in the call to the partial mapping routine
(candidates); such copies appeared with intel compiler version 8.0.
* Workaround MPI_AllReduce problem with booleans if mpich
  and MUMPS are compiled with different compilers
* Reduced message sizes for CB blocks in symmetric case
* Various minor improvements

Changes from 4.3.3 to 4.3.4
* Copies of some large CB blocks suppressed
  in local assemblies from child to parent
* gathering of solution optimized in solve phase

Changes from 4.3.2 to 4.3.3
* Control parameters of symbolic factorization modified.
* Global distribution time and arrowheads computation
  slightly optimized.
* Multiple Right-Hand-Side implemented.

Changes from 4.3.1 to 4.3.2
* Thresholds for symbolic factorization modified.
* Use merge sort for candidates (faster)
* User's communicator copied when entering MUMPS
* Code to free CB areas factorized in various places
* One array suppressed in solve phase

Changes from 4.3 to 4.3.1
* Memory leaks in PORD corrected
* Minor compilation problem on T3E solved
* Avoid taking into account absolute criterion
  CNTL(3) for partial LDLt factorization when whole
  column is known (relative stability is enough).
* Symbol MPI_WTICK removed from mpif.h
* Bug wrt inertia computation INFOG(12) corrected

Changes from 4.2beta to 4.3
* C INTERFACE CHANGE: comm_fortran must be defined
  from the calling program, since MUMPS uses a Fortran
  communicator (see user guide).
* LAPACK library is no more required
* User guide improved
* Default ordering changed
* Return number of negative diagonal elements in LDLt
  factorization (except for root node if treated in parallel)
* Rank-revealing options no more available by default
* Improved parallel performance
    - new incremental mechanism for load information
    - new communicator dedicated to load information
    - improved candidate strategy
    - improved management of SMP platforms
* Include files can be used in both free and fixed forms
* Bug fixes:
    - some uninitialized values
    - pbs with size of data on t3e
    - minor problems corrected with distributed matrix entry
    - count of negative pivots corrected
    - AMD for element entries
    - symbolic factorization
    - memory leak in tree reordering and in solve step
* Solve step uses less memory (and should be more efficient)

Changes from 4.1.6 to 4.2beta
* More precisions available (single, double, complex, double complex).
* Uniprocessor version available (doesn't require MPI installed)
* Interface changes (Users of MUMPS 4.1.6 will have to slightly
  modify their codes):
     - MUMPS -> ZMUMPS, CMUMPS, SMUMPS, DMUMPS depending the precision
     - the Schur complement matrix should now be allocated by the
       user before the call to MUMPS
     - NEW: C interface available.
     - ICNTL(6)=6 in 4.1.6 (automatic choice) is now ICNTL(6)=7 in 4.2
* Tighter integration of new ordering packages (for assembled matrices),
  see the description of ICNTL(7):
     - AMF, 
     - Metis,
     - PORD,
* Memory usage decreased and memory scalability improved.
* Problem when using multiple instances solved.
* Various improvments and bug fixes.

Changes from 4.1.4 to 4.1.6
* Modifications/Tuning done by P.Amestoy during his
  visit at NERSC.
* Additional memory and communication statistics.
* minor pbs solved.

Changes from 4.0.4 to 4.1.4
* Tuning on Cray T3e (and minor debugging)
* Improved strategy for asynchronous 
  communications 
  (irecv during factorization) 
* Improved Dynamic scheduling 
  and splitting strategies
* New maximal transversal strategies
* New Option (default) automatic decision 
  for scaling and maximum transversal



-------------------
= Release history =
-------------------


Release 4.8.3            : September 2008
Release 4.8.2            : September 2008
Release 4.8.1            : August 2008
Release 4.8.0            : July 2008
Release 4.7.3            : May 2007
Release 4.7.2            : April 2007
Release 4.7.1            : April 2007
Release 4.7              : April 2007
Release 4.6.4            : January 2007
Release 4.6.3            : June 2006
Release 4.6.2            : April 2006
Release 4.6.1            : February 2006
Release 4.6              : January 2006
Release 4.5.6            : December 2005, internal release
Release 4.5.5            : October 2005
Release 4.5.4            : September 2005
Release 4.5.3            : September 2005
Release 4.5.2            : September 2005
Release 4.5.1            : September 2005
Release 4.5.0            : July 2005
Releases 4.3.3 -- 4.4.3  : internal releases
Release 4.3.2            : November 2003
Release 4.3.1            : October 2003
Release 4.3              : July 2003
Release 4.2 (beta)       : December 2002
Release 4.1.6            : March  2000 
Release 4.0.4            : Wed Sept 22, 1999 <-- Final version from PARASOL

