From: Xin Xin on 25 Jun 2010 16:27 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 27 Jun 2010 22:50 "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
|
Pages: 1 Prev: load large matrix and calculate eigenvals Next: FCOR Algorithm |