EigenExa

高性能固有値ソルバ

EigenExaとは

EigenExaはポストペタスケール計算機から富岳に至るまでのスーパーコンピューティング環境上で高性能・スケーラブルな大規模固有値計算を実現するため、理化学研究所計算科学研究センターにおいて開発された。FS2020開発プロジェクトにおいて、幾つかの重点課題アプリケーションと協力研究を進めている。現在「富岳」ならびに国内のスパコンでの高速計算を指向したバージョン2.5以降の公開準備を進めている。

ダウンロード

EigenExa バージョン 2.4b ソースコード
EigenExa バージョン 2.3m ソースコード
EigenExa バージョン 2.4p1 ソースコード パッチ
EigenExa バージョン 2.3L ソースコード パッチ
EigenExa バージョン 2.4 ソースコード
EigenExa バージョン 2.3k2 ソースコード パッチ
EigenExa バージョン 2.3d ソースコード パッチ1パッチ2
EigenExa バージョン 2.3c ソースコード マニュアル(日本語)マニュアル(英語)
EigenExa バージョン 2.3b ソースコード
EigenExa バージョン 2.3a ソースコード
EigenExa バージョン 2.3 ソースコード
EigenExa バージョン 2.2d ソースコード
EigenExa バージョン 2.2c ソースコード
EigenExa バージョン 2.2b ソースコード
EigenExa バージョン 2.2a ソースコード
EigenExa バージョン 2.2 ソースコード
EigenExa バージョン 2.1a ソースコード
EigenExa バージョン 2.1 ソースコード
EigenExa バージョン 2.0 ソースコード
EigenExa バージョン 1.3a ソースコード
EigenExa バージョン 1.3 ソースコード
EigenExa バージョン 1.2 ソースコード
EigenExa バージョン 1.1 ソースコード
EigenExa バージョン 1.0 ソースコード マニュアル(日本語)2013年8月8日改訂版

リリースノート

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.

関連論文・発表

  • Shuhei Kudo, and Toshiyuki Imamura: Cache-efficient implementation and batching of tridiagonalization on manycore CPUs: HPC Asia 2019, Vanburgh Hotel, Guangzhou, China, Jan. 15th, 2019, Won the Best Paper Award in HPC Asia 2019.
  • Takeshi Fukaya, Toshiyuki Imamura, and Yusaku Yamamoto: A Case Study on Modeling the Performance of Dense Matrix Computation: Tridiagonalization in the EigenExa Eigensolver on the K Computer. IPDPS Workshops 2018: May 2018, pp. 1113-1122.
  • Yusuke Hirota, and Toshiyuki Imamura, Performance Analysis of a Dense Eigenvalue Solver on the K Computer, Proc. the 36th JSST Annual International Conference on Simulation Technology, Oct. 2017.
  • Toshiyuki Imamura, Takeshi Fukaya, Yusuke Hirota, Susumu Yamada, and Masahiko Machida: “CAHTR: Communication-Avoiding Householder Tridiagonalization”, Proceedings of ParCo2015, Advances in Parallel Computing, Vol.27: Parallel Computing: On the Road to Exascale, p.381-390, doi:10.3233/978-1-61499-621-7-381, 2016
  • Yusuke Mukunoki, Susumu Yamada, Narimasa Sasa, Toshiyuki Imamura, and Masahiko Machida, Performance of Quadruple Precision Eigenvalue Solver Libraries QPEigenK & QPEigenG on the K Computer, poster presentation, ISC2016, Best poster award in ‘HPC in Asia’.
  • Takeshi Fukaya, and Toshiyuki Imamura: “Performance Evaluation of the Eigen Exa Eigensolver on Oakleaf-FX: Tridiagonalization Versus Pentadiagonalization”, Proceedings of the Parallel and Distributed Processing Symposium Workshop (IPDPSW, PDSEC 2015), p.960-969, doi:10.1109/IPDPSW.2015.128, 2015.
  • Toshiyuki Imamura, Susumu Yamada, and Masahiko Machida: “Eigen-G: GPU-based eigenvalue solver for real-symmetric dense matrices”, Proceedings of PPAM2013, Lecture Notes in Computer Science (LNCS), Vol.8384, p.673-682, doi:10.1007/978-3-642-55224-3, 2014.
  • Toshiyuki Imamura, Susumu Yamada, and Masahiko Machida: “A High Performance SYMV Kernel on a Fermi-core GPU”, Proceedings of VECPAR2012, Lecture Note in Computer Science (LNCS), Vol.7851, p.59-71, doi:10.1007/978-3-642-38718-0, 2013.
  • Toshiyuki Imamura, Susumu Yamada, and Masahiko Machida, “Development of a High Performance Eigensolver on the Peta-Scale Next Generation Supercomputer System”, Progress in Nuclear Science and Technology, the Atomic Energy Society of Japan, Vol. 2, pp.643-650, 2011.
  • Huu Phuong Pham, Toshiyuki Imamura, Susumu Yamada, and Masahiko Machida, “Novel approach in a divide and conquer algorithm for eigenvalue problems of real symmetric band matrices”, Proceedings of Joint International Conference on Supercomputing in Nuclear Applications and Monte Carlo 2010 (SNA+MC2010), Tokyo, Japan, 2010.
  • Toshiyuki Imamura, Takuma Kano, Susumu Yamada, Masahiko Okumura, and Masahiko Machida, “High-Performance Quantum Simulation for Coupled Josephson Junctions on the Earth Simulator: A challenge to Schrodinger Equation on 256^4Grids”, International Journal of High Performance Computing Applications, SAGE publications, Vol. 24, No. 3, pp. 319-334, 2010.
  • Toshiyuki IMAMURA, Susumu YAMADA, and Masahiko MACHIDA, “Narrow-band reduction approach of aDRSM eigensolver on a multicore-based cluster system”, ParallelComputing: From Multicores to GPU’s to Petascale, Chapman, B. et al.(eds), Advances in Parallel Computing 19, IOS Press, pp.91-98, 2010.
  • Susumu Yamada, Toshiyuki Imamura, Takuma Kano and Masahiko Machida, “High-Performance Computing for Exact Numerical Approaches to Quantum Many-Body Problems on the Earth Simulator”, ACM/IEEE SC06, Tampa, USA, 2006. (Selected as one of the finalist papers of Gordon Bell Prize 2006).[CD-ROM]

EPASA 2014 (共同発表ポスターより本チーム成果部分を抽出・編集)

サムネイルをクリックするとPDFファイルが開きます.