We need to get all (a part of them won't suffice) the eigenvalues of a very large (≈10^6x10^6) very sparse (≈10^7 non-zero entries) non-hermitian complex (but symmetric!) matrix. We have access to computer clusters from with Intel® Gold 6148 Skylake @ 2.4 [GHz] CPUs with up to 752 [GB] of RAM each (shared or distributed memory). The cluster already have an installation of Intel® Math Kernel Library.
MKL : Major version: 2018, Minor version: 0, Update version: 3, Build: 20180406, Platform: Intel(R) 64 architecture, Processor optimization: Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) enabled processors.
OS : CentOS Linux release 7.7.1908 (Core).
Compiler : mpicc (ICC) 18.0.3 20180410
- Which package/library/function should I use ? I thought I could use zfeast_hcsrev from FEAST, but from what the documentation says, it seems like it's restricted to hermitian matrices (the h in hcsr stands for hermitian).
- If that function takes parameters apart from the matrix, do they have default values. If they don't, what would you recommend or where could I find information to determine those values myself ?
- Is there an easy way to import my matrix which is in Matrix Market format (.mtx) to pass it to that function ?
- Is there any particular compiler options I should use ?
(I'm a graduate student in physics so computer science isn't my specialty)
Yes, these routines ( zfeast_hcsrev) are restricted to hermitian matrixes.
There are some default parameters, which you could check from here - https://software.intel.com/en-us/mkl-developer-reference-c-extended-eigensolver-input-parameters. ;
You could try to convert mtx format to csr by using mkl_zcsrcoo() routines.
You don't need to use some specific compiler options.
In general, when there is a need for solving a full eigenproblem for a huge matrix, a question should be raised immediately: is it a right problem which you are looking at? Especially if the operator (matrix) is not s.p.d in the corresponding space.
What kind of application do you have which needs full solution to an eigenproblem?