I want to store a big matrix (a 720GB variable )

2 views (last 30 days)
I want to store a big matrix. It needs about 720GB memory.
The big matrix is used to calculate eigs fuction (to find eigenvector) as a parameter.
Is it possible to get big matrix (720GB memory or even more) by using distributed computer environment?
I have ten-computers which has 72GB memory, so I want to save the big matrix divided to 10-computers.
Then do eigs function -> result = eigs('big matrix')
So the big matrix could be recognized as one variable even if it is stored in divided computers.
Is this possible?

Answers (1)

Sarah Wait Zaranek
Sarah Wait Zaranek on 14 Apr 2011
I can think of two ways to do this:
1. If you have a sparse matrix, then I would use the sparse data type in MATLAB and probably use a 64bit machine/OS. This will not hold the non-zero values, greatly lessening your memory footprint. d = eig(S) accepts a sparse symmetric matrix S. Otherwise, use eigs in place of eig.
2. Using distributed arrays (across multiple machines). This will do what you suggest in your question, it will create a matrix whose elements are distributed across the memory of multiple machines but can still be treated as one big matrix. To do this you need to have the MATLAB Distributed Computing Server product installed on your cluster. Here is a demo using backslash - but eig should follow the same idea since it is supported for distributed arrays.
  2 Comments
Walter Roberson
Walter Roberson on 14 Apr 2011
Unless something changed in 2011a, it is not possible to use eigs() to calculate all the eigenvalues of a sparse matrix: it errors out and says to use eig() instead.
Also, eigs is *very* slow if you are calculating more than a handful of eigenvalues
Sarah Wait Zaranek
Sarah Wait Zaranek on 14 Apr 2011
Yes --> d = eigs(A) returns a vector of A's six largest magnitude eigenvalues by default.
It depends on what he needs.

Sign in to comment.

Categories

Find more on Linear Algebra in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!