Low-Memory Eigensolver?

Low-Memory Eigensolver?


Ive been trying to develop a solver for a generalised symmetric banded eigenproblem A*z = λ*B*z. I'm currently using the following chain of MKL functions:

1. DPBSTF (factorise)

2. DSBGST (standard form)

3. DSBEVX (solve for some eigenvalues and eigenvectors)

4. Recover Eigenvectors of original system using X from (2)

In this process an NxN matrix seems to be necessary to recover the eigenvectors at stage (4), but I am having trouble finding enough memory for this matrix (with N of 6000 +). I'm working on a 64bit Windows 7 machine, coding in vb.net with fortran wrappers to the mkl functions, so memory usage (within the .net environment) is the limiting factor here, not speed of solution.  Is there any alternatives that you know of that would allow me to avoid using an NxN matrix at all? As it is I'm overwriting matrices and reusing memory as much as possible and it is still struggling with these relatively small matrices...



3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

What is the maximal bandwidth, and if it is significantly less than N, are you storing the matrices involved in full form or are you using banded storage format?

The bandwidth is significantly less than N (say around 500) and both input matrices are stored in banded form. The issue is that with the method I'm using an NxN matrix is still required to recover the eigenvectors of the original system. Do you know of a way to solve for some eigenvalues and vectors without needing to use any NxN matrices?

Leave a Comment

Please sign in to add a comment. Not a member? Join today