finding eigenvalues of huge and very sparse matrix -
i have following problem. there matrix a
of size nxn
, n = 200 000
. sparse, there m
elements in each row, m={6, 18, 40, 68, 102}
(i have 5 different scenarios), rest zeros.
now eigenvalues , eigenvectors of matrix a
.
problem is, cannot put matrix a
memory around 160 gb of data. looking software allows nice storing of sparse matrix (without zeros, matrix few mb) , putting stored matrix without zeros algorithm calculates eigenvalues , vectors.
can of recommend me software that?
edit: found out can reconfigure matrix a
becomes band matrix. use lapack
eigenvalues , eigenvectors (concretely: http://software.intel.com/sites/products/documentation/doclib/iss/2013/mkl/mklman/guid-d3c929a9-8e33-4540-8854-aa8be61bb08f.htm). problem is, need vectors, , since matrix nxn
, cannot allow lapack
store solution (all eigenvectors) in memory. best way function give me first k eigenvectors, rerun program next k eigenvectors , on, can save results in file.
you may try use slepc library http://www.grycap.upv.es/slepc/description/summary.htm :
"slepc scalable library eigenvalue problem computations, software library solution of large sparse eigenproblems on parallel computers."
read second chapter of users'manual, "eps: eigenvalue problem solver". focused on methods preserve sparcity...but limited number of eigenvalues , eigenvectors computed.
i hope our matrices have properties (positive definite instance...).
epsispositive(eps eps,petscbool *pos);
you may interrested in "spectrum slicing" compute eigenvalues in given interval... or may set target , compute closest eigenvalue around target.
see examples http://www.grycap.upv.es/slepc/documentation/current/src/eps/examples/tutorials/index.html
why need compute eigenvectors such large matrices ?
bye,
Comments
Post a Comment