This project has moved. For the latest updates, please go here.

OutOfMemoryException when performing eigenvalue decomposition

Jun 2, 2014 at 7:26 PM
I've got an (approximately) 4600x4600 dense matrix that I want to perform eigenvalue decomposition on, but attempting to do so causes an OutOfMemoryException. Is this just too big to accomplish? I'm going to try it in MATLAB next, but simple transfer over is nontrivial because attempting to write it to a .m file using a MatlabMatrixWriter also causes an OutOfMemoryException.

I'm using 3.0.0-beta01 with the MKL (32-bit) provider.
Jun 2, 2014 at 7:52 PM
It's certainly possible to compute an EVD on a 4600x4600 dense matrix with Math.NET Numerics; such a matrix is only 160 MB and should thus fit into memory easily. But even with MKL it will take a while to compute the decomposition (a bit more than a minute on my system with random data).

However, I'd strongly recommend to switch to 64-bit mode (and 64-bit MKL).
How much RAM does your system have available?

Marked as answer by cdrnet on 6/2/2014 at 2:17 PM
Jun 2, 2014 at 8:53 PM
After switching to the 64-bit provider (I'd forgotten about that "Prefer 32-bit" checkbox), the problem has gone away. I'm still a little confused, but at least it's running. Thanks!