From: Xin Xin on
Hi,

I have a large matrix 30,000x30,000 stored in text file(~10G in size), and I want to find the eigenvalue and eigenvector for it and print it to another text file.
I am wondering how can I do it using parallel computing package( or else I get "Out of Memory" error and I am doing the computation on a cluster)

Thank you!
Xin
From: Steven Lord on

"Xin Xin" <starmuzi(a)hotmail.com> wrote in message
news:i0331s$f9n$1(a)fred.mathworks.com...
> Hi,
>
> I have a large dense matrix 30,000x30,000 stored in a text file(~ 10 G in
> size), and I want to load it into memory. After finding out all the
> eigenvalues and eigenvectors using eig, I want to print the eigenvalue and
> eigenvector to another text file.
> Since the memory is limited for a single core, I want to use parallel
> package, could someone help me out?

I think you're going to need to write your own function using the file I/O
functions (like TEXTSCAN) to read in the data for each worker on that worker
and assemble the matrix from the pieces. Read this section of the
documentation for information about how to work with codistributed arrays.

http://www.mathworks.com/access/helpdesk/help/toolbox/distcomp/bquvksw.html

Alternately, if your matrix is sparse (only a small percentage of the
entries are nonzero), read in each line and store the locations of the
nonzeros in columns, then use SPARSE to construct it as a sparse matrix and
use EIGS to compute some of the eigenvalues/vectors.

--
Steve Lord
slord(a)mathworks.com
comp.soft-sys.matlab (CSSM) FAQ: http://matlabwiki.mathworks.com/MATLAB_FAQ
To contact Technical Support use the Contact Us link on
http://www.mathworks.com