EigenExa

High Performance Eigen-Solver

Download

EigenExa version 2.4b source code
EigenExa version 2.3m source code
EigenExa version 2.4p1 source code patch
EigenExa version 2.3L source code patch
EigenExa version 2.4 source code
EigenExa version 2.3k2 source code patch
EigenExa version 2.3d source code patch1,patch2
EigenExa version 2.3c source code user's manual (in Japanese), user's manual (in English)
EigenExa version 2.3b source code
EigenExa version 2.3a source code
EigenExa version 2.3 source code
EigenExa version 2.2d source code
EigenExa version 2.2c source code
EigenExa version 2.2b source code
EigenExa version 2.2a source code
EigenExa version 2.2 source code
EigenExa version 2.1a source code
EigenExa version 2.1 source code
EigenExa version 2.0 source code
EigenExa version 1.3a source code
EigenExa version 1.3 source code
EigenExa version 1.2 source code
EigenExa version 1.1 source code
EigenExa version 1.0 source code user's manual (in Japanese, rievised at Aug. 8, 2013)

Release notes

2.4b : August 20, 2018
  • [Serious] Bug fix for incorrect data redistribution, which might violate allocated memory.
    The bug might have happened in the case that the number of processes, P=Px*Py, is large, and Px and Py are not equal but nearly equal.
  • This version is for only bug fix for the serious one.
2.3m : August 20, 2018
  • [Serious] Bug fix for incorrect data redistribution, which might violate allocated memory.
    The bug might have happened in the case that the number of processes, P=Px*Py, is large, and Px and Py are not equal but nearly equal.
  • This version is for only bug fix for the serious one.
Patch for EigenExa 2.4p1 : May 25, 2017
  • [Serious] Bug fix for incorrect data redistribution in eigen_s.
  • Major change with Autoconf -and- Automake framework.
Patch for EigenExa 2.3L : May 25, 2017
  • [Serious] Bug fix for incorrect data redistribution in eigen_s.
  • This is the Final code for 2.3 branch.
Patch for EigenExa 2.4 : April 18, 2017
  • Major change with Autoconf -and- Automake framework.
Patch for EigenExa 2.3k2 : April 16, 2017
  • Communication Avoiding algorithms to the eigen_s driver.
  • The optional argument nvec is available, which specifies the number of eigenvectors to be computed from the smallest. This version does not employ the special algorithm to reduce the computational cost. It only drops off the unneccessary eigenmodes in the backtransformation.
Patch for EigenExa 2.3d : August 31, 2015
  • Modify the file list in export.map, which is only used for building the EigenExa shared library.
2.3d : July 7, 2015
  • Tuned up the parameters according to target architectures.
  • Introduce a sort routine in bisect.F and bisect2.F for eigenvalues.
  • Modify the algorithm to create reflector vectors in eigen_prd_t4x.F
  • Modify the matrix setting routine to load the mtx (Matrix Market) format file via both ‘A.mtx’ and ‘B.mtx’.
  • Re-format the source code by the fortran-mode of emacs and extra rules.
2.3c : Apr 23, 2015
  • Fix bug on flops count of eigen_s which returned incorrect value due to missing initialization in dc2.F. This bug is found in version 2.3a and version 2.3b.
  • Minor change on timer routines.
  • Minor change on broadcast algorithm in comm.F.
2.3b : Apr 15, 2015
  • Minor change to manage the real constants.
  • Minor change to use Level 1 and 2 BLAS routines.
  • Minor change to preserve invalid or oversized matrices.
  • Minor change of Makefile to allow ‘-j’ option.
2.3a : Apr 14, 2015
  • Minor change on thread parallelization of eigne_s.
  • Minor change of the API’s for timer routines.
  • Fix the unexpected optimization of rounding errors in eigen_dcx.
2.3 : Apr 12, 2015
  • Bug fix on the benchmark program.
  • Refine the race condition in the backtransformation routine.
  • Introduce Communication Avoiding algorithms to the eigen_s driver.
2.2d : Mar 20, 2015
  • Bug fix on the timer print part in trbakwy4.F not to do zero division.
  • Modify the synchronization point in eigen_s.
  • Modify thread parallelization in eigen_dc2 and eigen_dcx.
2.2c : Mar 9, 2015
  • Bug fix on the benchmark program.
  • Add the make_inc file for an NEC SX platform.
2.2b : Oct 30, 2014
  • Introduce new API to query the current version.
  • Introduce the constant eigen_NB=64, which refers to the block size for cooperative work with the ScaLAPACK routines.
  • Correct the requred array size in eigen_mat_dims().
  • Improve the performance of test matrix generator routine mat_set().
  • Add the listing option of test matrices in eigenexa_benchmark.
2.2a : Jun 20, 2014
  • Fix minor bug of Makefile, miscC.c and etc for BG/Q.
  • Modify the initialization process not to use invalid communicators.
  • Comment out the calling BLACS_EXIT in eigen_free().
2.2 : Apr 10, 2014
  • Arrange the structure of source directory.
  • Reversion of the DC routines back to version 1.3a to avoid bug.
  • Hack miscC.c to be called from IBM BG/Q.
  • Fix bug on the benchmark program for exceptional case of MPI_COMM_NULL.
  • Fix bug on eigen_s with splitted communicator.
  • Update machine depended configuration files.
  • Experimental support of building a shared library
2.1a : Feb 23, 2014
  • Fix bug on the benchmark program.
2.1 : Feb 10, 2014
  • Fix bug on eigen_sx: it gave wrong results when N=3.
  • Modify the bisect2 by a pivoting algorithm.
  • Update the test program ‘eigenexa_benchmark’ in order to check accuracy with several test matrices and computing modes.
  • Tune performance for K computer and Fujitsu FX10 platforms.
  • Add make_inc file for a BlueGeneQ platform, but it is not official support, just an experimental.
2.0 : Dec 13, 2013
  • Add eigen_s which adopts the conventional 1-stage algorithm.
  • Add optional modes to compute only eigenvalues and to improve the accuracy of eigenvalues.
  • Modify to support a thread mode with any number of threads.
  • Tune performance for K computer and Fujitsu FX10 platforms.
1.3a : Sep 21, 2013
  • Fix bug on syncronization mechanism of eigen_trbakwyx().
1.3 : Sep 20, 2013
  • Fix bug on eigen_init() in initialization with MPI_Cart’s or MPI_COMM_NULL’s.
  • Add test programs to check several process patterns.
1.2 : Sep 17, 2013
  • Fix bug on benchmark code in making a random seed.
  • Modify to support upto 64-thread running.
1.1 : Aug 30, 2013
  • Fix bug on data-redistribution row vector to column vector when P=p*q and p and q have common divisor except themselves.
  • Optimize data redistribution algorithm in dc_redist[12].F.
1.0 : Aug 1, 2013
  • This is the first release.
  • Standard eigenvalue problem for a dense symmetric matrix by a novel one-stage algorithm.

Outreach

EPASA 2014 (The following presentation is part of the poster presented in EPASA 2014)

To get the PDF file, click the thumbnail.