Diagonalization of Gigantic Dense Hermitian Matrices

Click For Summary

Discussion Overview

The discussion focuses on the challenges and methods for diagonalizing large dense Hermitian matrices, particularly in the context of numerical analysis within computational condensed matter physics. Participants explore various algorithms and their performance for matrices of sizes 25k-by-25k and larger.

Discussion Character

  • Exploratory, Technical explanation, Debate/contested

Main Points Raised

  • One participant emphasizes the inadequacy of standard routines like zheevx() in LAPACK for large matrices and suggests the RMM-DIIS method as a state-of-the-art alternative.
  • Another participant proposes the QR algorithm as a viable option, sharing personal experience with its effectiveness.
  • A follow-up question is raised regarding the performance of the QR algorithm specifically with gigantic matrices.
  • Another participant notes that the performance of the QR algorithm can vary based on the specific matrix and suggests conducting experiments with random matrix generation to assess computation time and accuracy.

Areas of Agreement / Disagreement

Participants express differing views on the best approach for diagonalizing large matrices, with no consensus on a single preferred method. The discussion remains open to various techniques and their respective performances.

Contextual Notes

Participants mention the dependence of computation time on matrix size and desired accuracy, indicating that results may vary based on specific conditions and assumptions about the matrices being analyzed.

Bora
Messages
2
Reaction score
0
Hi there,

This is a question about numerical analysis used particularly in the computational condensed matter or anywhere where one needs to DIAGONALIZE GIGANTIC DENSE HERMITIAN MATRICES.

In order to diagonalize dense Hermitian matrices size of 25k-by-25k and more (e.g. 1e6-by-1e6) it is not enough to use canned routines like zheevx() in LAPACK. It's way too slow. One needs new state of the art routines like RMM-DIIS (Residual Minimisation-Direct Inversion in Iterative Subspace) from Wood, Zunger "A New Method for Diagonalising Large Matrices" [J.Phys.A - Mathematical and General, 18, 1343 (1985)]. Since, I have never written eigensolver before, can anyone with experience give an advice what I need to learn to do progam RMM-DIIS quickly. E.g. to give a list of methods and concepts, with book/chapters. Thanks.
 
Computer science news on Phys.org
I'm not sure if you've considered the QR algorithm, but I have used it in the past and it works well. Here is a short video explaining how to write a simple code for it:
 
Thanks a lot. How does the QR perform with gigantic matrices?
 
It depends on the matrix. Just do a random matrix generation (in MATLAB I think it's with function 'magic') and write the code and see. The computation time really depends on the matrix size and how accurate you want the eigenvalues. If you take data for computation time vs iteration for a few medium size matrices you could probly plot that and extrapolate with a curve fit to predict higher matrix sizes.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K