Memory requirements of lobpcg: Matlab and hypre implementation differences
Show older comments
Hi,
until recently i used lobpcg.m from http://www.mathworks.com/matlabcentral/fileexchange/48-lobpcg-m to solve an eigenvalue problem A x = lambda*x. A is large, symmetric, complex and sparse. To compute several eigenpairs (lambda, x) inside the spectrum i use the folded spectrum method: folding the original matrix around the desired value AA = ( A -value)^2, solve the resulting eigenproblem for AA and backtransform the eigenvalues.
This worked fine until i added some small modifications to the off-diagonal entries of the original matrix A. These modifications resulted in very poor convergence.
To solve this problem i call lobpcg via mpirun in the ij-interface of hypre, where i can use the BoomerAMG preconditioner. With this the convergence is okay again, but:
Compared to the lobpcg.m-version, the memory requirements using hypre are several times higher (lets say by a factor of 4 or 5 approximately). In both cases i use the same number of processors. Of course, with mpirun several small parts of the matrix to diagonalize are additionally stored locally, but this is not the origin of the high memory requirements.
Maybe somebody can help me with this.
Thanks
Accepted Answer
More Answers (6)
Elias
on 16 Jun 2011
0 votes
Andrew Knyazev
on 24 Jul 2011
0 votes
Please try adding the following options to the ij driver: "-hmis -agg_nl 1 -interptype 6 -Pmx 4" These are proposed by a member of the hypre team. They make the preconditioner a bit worse, but, at the same time, not so memory-hungry.
I am still uneasy about your use of a complex matrix in the ij driver. You may want to send a email to hypre support to ask about it. If you do, please let me know their answer.
Since you actually use BLOPEX in hypre, rather then MATLAB, you may want to post your further comments at our BLOPEX site at http://code.google.com/p/blopex/issues/list
Elias
on 26 Jul 2011
0 votes
Andrew Knyazev
on 31 Jul 2011
0 votes
The development version of SLEPc incorporates BLOPEX now, see http://code.google.com/p/blopex/wiki/PETScInstallDevel so that you can easily give it a try (without preconditioning). If you do, please let me know how it runs. We have not yet tested it for complex matrices.
Elias
on 31 Jul 2011
0 votes
Andrew Knyazev
on 1 Aug 2011
0 votes
Have you actually tried the development version of SLEPc? The one that one gets by
If so, could you please be very specific and report the complete setup and the error message?
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!