This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Eigensolver crashes with big matrix

Tags: None
(comma "," separated)
ITguy
Registered Member
Posts
1
Karma
0

Eigensolver crashes with big matrix

Sun Oct 23, 2011 4:34 pm
I am using Eigen3 to calculate the eigenvalues and eigenvectors of lots of matrices. Some of these matrices are a bit big (i.e. 18000x18000) and when I use the eigensolver on them I get an error at runtime.
After some research I found out that it crashes with matrixsize of 16000 and above.
Here is the code I use:
Code: Select all
n = 16000;
MatrixXf L = MatrixXf::Random(n,n);
EigenSolver<MatrixXf> eigensolver(L);
system("PAUSE");
EigenSolver<MatrixXf>::EigenvalueType eigenvalues = eigensolver.eigenvalues();
system("PAUSE");
EigenSolver<MatrixXf>::EigenvectorsType eigenvectors = eigensolver.eigenvectors();

It never reaches the first system("PAUSE"); before that I get:
Debug Error!

Program: F:\<some folders here>\main.exe

R6010
- abort() has been called

(Press Retry to debug the application)

When I press Retry then I only get the message that main.exe has stopped working, so thats not very usefull either.
Is this a known limitation of Eigen3 or am I doing something wrong?

extra info:
Win7 x64
Visual Studio C++ 2010 Express
(Plz let me know if you need more info)
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
You probably ran out of memory. With such large matrices you should consider using a sparse eigen-decomposiiton, assuming your matrices are sparse. If you are only interested by the largest eigenvalues with a high probability, there is: http://code.google.com/p/redsvd/ which uses Eigen's matrices. Otherwise slepc is a reference but more painful to use.


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]