ChASE
ChASE is a modern and scalable library to solve dense Hermitian (Symmetric) algebraic eigenvalue problems based on a spectral polynomial filter. The library is fully parallelized, and is particularly effective for sequences of eigenproblems as they often arise in electronic structure theory.
Cite this software
Description
Use Case and Features
-
Real and Complex: ChASE is templated for real and complex numbers. So it can be used to solve real symmetric eigenproblems as well as complex Hermitian ones.
-
Eigespectrum: ChASE algorithm is designed to solve for the extremal portion of the eigenspectrum. By default it computes the lowest portion of the spectrum but it can compute as well the largest portion by solving for -A. The library is particularly efficient when no more than 20% of the extremal portion of the eigenspectrum is sought after. For larger fractions the subspace iteration algorithm may struggle to be competitive. Converge could become an issue for fractions close to or larger than 50%.
-
Type of Problem: ChASE can currently handle only standard eigenvalue problems. Generalized eigenvalue problems of the form A\hat{x} = \lambda B \hat{x}, with B s.p.d., can be solved after factorizing B = L L^T and transforming the problem into standard form A = L^{-1} A L^{-T}.
-
Sequences: ChASE is particularly efficient when dealing with sequences of eigenvalue problems , where the eigenvectors solving for one problem can be use as input to accelerate the solution of the next one.
-
Vectors input: Since it is based on subspace iteration, ChASE can receive as input a matrix of vector V equal to the number of desired eigenvalues. ChASE can experience substantial speed-ups when V} contains some information about the sought after eigenvectors.
-
Degree optimization: For a fixed accuracy level, ChASE can optimize the degree of the Chebyshev polynomial filter so as to minimize the number of FLOPs necessary to reach convergence.
-
Precision: ChASE is also templated to work in Single Precision (SP) or Double Precision (DP).
Versions of the library
Currently, the library consists of one major part, labelled ChASE-MPI, for solving dense eigenproblems. There will be another major part to support sparse eigenproblems in short future. ChASE-MPI can be installed with the minimum amount of dependencies (BLAS, LAPACK, and MPI).
Multi-Configurations
ChASE-MPI supports different configurations depending on the available hardware resources.
-
Shared memory build: This is the simplest configuration and should be exclusively selected when ChASE is used on only one computing node or on a single CPU. The simplicity of this configuration resides in the way the Matrix-Matrix kernel is implemented with respect to the full MPI build.
-
MPI+Threads build: On multi-core homogeneous CPU clusters ChASE is best used in its pure MPI build. In this configuration, ChASE is typically used with one MPI rank per NUMA domain and as many threads as number of available cores per NUMA domain.
-
GPU build: ChASE-MPI can be configured to take advantage of graphics card on heterogeneous computing clusters. Currently we support one GPU card per MPI rank.
Matrix Distributions
In ChASE-MPI, the MPI nodes are constructed as 2D grid, two data distributions are support to assigned sub-blocks of dense matrix A into different MPI nodes.
Block Distribution
The first is called Block Distribution, in which each MPI rank of 2D grid is assigned a block of dense matrix A. The most important kernel of ChASE is the Hermitian Matrix-Matrix Multiplication. This block data distribution results in a matrix-matrix multiplications on each node that is large and contiguous, often resulting in a performance close to the hardware theoretical peak. In addition, this data distribution allows an easy offloading of the multiplication to accelerators such as GPUs.
Block-Cyclic Distribution
The second is called 2D Block-Cyclic Distribution. This distribution scheme was introduced for the implementation of dense matrix computations on distributed-memory machines. Compared to the Block Distribution, the main advantage of the Block-Cyclic Distribution is improving the load balance of matrix computation if the amount of work differs for different entries of a matrix, e.g., QR and LU factorization. A block distribution can lead to load imbalances.
Even the load balance is not a problem for ChASE, in which the most important kernel Hermitian Matrix-Matrix Multiplication is well balanced with the Block Distribution, we still provide the Block-Cyclic Distribution as an option
in ChASE to avoid the re-distribution between these two types of distributions, which might be required for some application, e.g., solving generalized eigenproblem by ChASE with Cholesky factorization. In ChASE, its implementation with Block-Cyclic Distribution can achieve similar performance as the implementation with Block Distribution.
- BSD-3-Clause
- Open Access
Participating organisations
Reference papers
Mentions
- 1.Author(s): Takeshi Fukaya, Yuji Nakatsukasa, Yusaku YamamotoPublished in 2024 IEEE International Parallel and Distributed Processing Symposium (IPDPS) by IEEE in 2024, page: 63-7510.1109/ipdps57955.2024.00015
- 2.Author(s): Xinzhe Wu, Edoardo Di NapoliPublished in Proceedings of the SC '23 Workshops of the International Conference on High Performance Computing, Network, Storage, and Analysis by ACM in 2023, page: 1688-169610.1145/3624062.3624249
- 3.Author(s): Yichen Zhang, Shengguo Li, Fan Yuan, Dezun Dong, Xiaojian Yang, Tiejun Li, Zheng WangPublished in 2023 IEEE International Parallel and Distributed Processing Symposium (IPDPS) by IEEE in 2023, page: 379-38910.1109/ipdps54959.2023.00046
- 4.Author(s): Xinzhe Wu, Davor Davidović, Sebastian Achilles, Edoardo Di NapoliPublished in Proceedings of the Platform for Advanced Scientific Computing Conference by ACM in 2022, page: 1-1210.1145/3539781.3539792
- 5.Author(s): Paul F. Baumeister, Shigeru TsukamotoPublished in Proceedings of the Platform for Advanced Scientific Computing Conference by ACM in 2019, page: 1-1110.1145/3324989.3325717
- 1.Author(s): Estela Suarez, Hendryk Bockelmann, Norbert Eicker, Jan Eitzinger, Salem El Sayed, Thomas Fieseler, Martin Frank, Peter Frech, Pay Giesselmann, Daniel Hackenberg, Georg Hager, Andreas Herten, Thomas Ilsche, Bastian Koller, Erwin Laure, Cristina Manzano, Sebastian Oeste, Michael Ott, Klaus Reuter, Ralf Schneider, Kay Thust, Benedikt von St. ViethPublished in Frontiers in High Performance Computing by Frontiers Media SA in 202510.3389/fhpcp.2025.1520207
- 2.Author(s): Yingjie Song, Zhuo Tang, Yaohua Wang, Xiong Xiao, Zhizhong Liu, Jing Xia, Kenli LiPublished in Journal of Parallel and Distributed Computing by Elsevier BV in 2025, page: 10499710.1016/j.jpdc.2024.104997
- 3.Author(s): William Dawson, Eisuke Kawashima, Laura E. Ratcliff, Muneaki Kamiya, Luigi Genovese, Takahito NakajimaPublished in The Journal of Chemical Physics by AIP Publishing in 202310.1063/5.0142652
- 4.Author(s): Andreas Alvermann, Georg Hager, Holger FehskePublished in ACM Transactions on Parallel Computing by Association for Computing Machinery (ACM) in 2023, page: 1-3110.1145/3614444
- 5.Author(s): Xiao Zhang, Sebastian Achilles, Jan Winkelmann, Roland Haas, André Schleife, Edoardo Di NapoliPublished in Computer Physics Communications by Elsevier BV in 2021, page: 10808110.1016/j.cpc.2021.108081
- 6.Author(s): Kai-Hsin Liou, Ariel Biller, Leeor Kronik, James R. ChelikowskyPublished in Journal of Chemical Theory and Computation by American Chemical Society (ACS) in 2021, page: 4039-404810.1021/acs.jctc.1c00237
- 7.Author(s): Sanja Singer, Edoardo Di Napoli, Vedran Novaković, Gayatri ČaklovićPublished in SIAM Journal on Scientific Computing by Society for Industrial & Applied Mathematics (SIAM) in 2020, page: C265-C29310.1137/19m1277813
- 8.Author(s): Victor Wen-zhe Yu, Carmen Campos, William Dawson, Alberto García, Ville Havu, Ben Hourahine, William P. Huhn, Mathias Jacquelin, Weile Jia, Murat Keçeli, Raul Laasner, Yingzhou Li, Lin Lin, Jianfeng Lu, Jonathan Moussa, Jose E. Roman, Álvaro Vázquez-Mayagoitia, Chao Yang, Volker BlumPublished in Computer Physics Communications by Elsevier BV in 2020, page: 10745910.1016/j.cpc.2020.107459
- 9.Author(s): Kai-Hsin Liou, Chao Yang, James R. ChelikowskyPublished in Computer Physics Communications by Elsevier BV in 2020, page: 10733010.1016/j.cpc.2020.107330
- 10.Author(s): Jan Winkelmann, Paul Springer, Edoardo Di NapoliPublished in ACM Transactions on Mathematical Software by Association for Computing Machinery (ACM) in 2019, page: 1-3410.1145/3313828
- 11.Author(s): Mario Berljafa, Daniel Wortmann, Edoardo Di NapoliPublished in Concurrency and Computation: Practice and Experience by Wiley in 2014, page: 905-92210.1002/cpe.3394