Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- inner system solver SPARSE FEAST

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Pilkyung_Moon

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-11-2016
11:16 PM

139 Views

inner system solver SPARSE FEAST

Dear MKL developers,

I am trying to use FEAST eigenvalue solver with CSR formatted matrix, but encountered unexpected error (info = -2).

Both the Table 10 in the FEAST manual (http://arxiv.org/pdf/1203.4031v3.pdf) and MKL manual (https://software.intel.com/en-us/node/521739#GUID-E1DB444D-B362-4DBF-A1DF-DA68F7FB7019) said that this happend because "Internal error of the inner system solver. Possible reasons: not enough memory for inner linear system solver or inconsistent input.".

Could you please provide me comments or advices to fix this problem? The icc version is 15.0.3 and MKL version is 11.2, 64-bit system. I attached the sample code with three different CSR matrices. You can choose the matrix (small, medium, large) by commenting in/out the parts at lines 26-46.

Each CSR file contains Hermitian matrix,

1. 'n': dimension of the matrix

2. 'ia': rows, n+1 elements

3. 'n_val': # of non-zero elements

4. 'ja': columns, n_val elements

5. 'val': values, n_val elements

When I choose 'Small' matrix, I could get proper eigenvalues. But, when I choose 'Medium' matrix, it gives info = -2 and unrealistic 'm' (# of eigenvalues obtained). And for the 'Large' matrix, I got a segmentation fault.

When I ran the code with much simpler sample matrices, it worked fine even with very large matrices.

Thank you in advance,

Pilkyung

Link Copied

8 Replies

Irina_S_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-12-2016
03:14 AM

139 Views

Dear Pilkyung,

At a first glance, I see that your matrix is not Hermitian, that may cause the problem. Please make sure that all your matrices are Hermitian (or Symmetric in case of real matrices). Extended Eigensolver works only with problems with real spectrum, thus matrices A and B must be Hermitian, matrix B positive definite.

Best regards,

Irina

Pilkyung_Moon

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-12-2016
04:18 AM

139 Views

Dear Irina,

Thank you for your response. I checked the three matrices, but they are almost (within an error of 1e-14) Hermitian. So, in principle, FEAST should have worked for them. Could you please provide comments or advices to fix this?

Best regards,

Pilkyung

Irina_S_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-12-2016
07:25 AM

139 Views

Dear Pilkyung,

You're right, the matrix you're working with is indeed Hermitian, but what confused me in the first time is that its portrait (arrays ia and ja) is not of symmetric matrix. The reason is that you have zero values stored in val array. This causes all troubles, since csr format must store only nonzero values.

Best regards,

Irina

Pilkyung_Moon

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-12-2016
07:27 PM

139 Views

Thank you, Irina!

The zero values in CSR format caused that error. (I added these zero values to avoid missing of row/col (with entire values equal to zero) when converting [i,j,v] format to CSR format,)

After I removed all zero values, FEAST worked fine.

BTW, I am checking whether the value of 'info' equals 3 (which means "m0 is too small"), and trying to adjust the m0 value (estimated # of eigenvalues) in the next iteration. But it seems that m0 is corrupted at some (not every) run of zfeast_hcsrev(). Is this usual or did I make any mistake?

Best regards,

Pilkyung

Irina_S_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-15-2016
04:12 AM

139 Views

Dear Pilkyung,

Glad to help!

Corrupted m0 is unexpected behavior. Can you please provide a reproducer of this issue?

Best regards,

Irina

Pilkyung_Moon

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-15-2016
10:27 AM

139 Views

Dear Irina,

Thank you for your prompt response.

Here I attach the source code and log. The code divides the eigenvalue range into several domains and solve at each domain. And if the initial guess of m0 is too small, re-run the code with a larger m0.

As you can see at the lines #5, #25, it seems that m0 is corrupted at some iterations.

Best regards,

Pilkyung

Irina_S_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-25-2016
05:07 AM

139 Views

Dear Pilkyung,

Thank you for your reproducer. I can also see this behavior, m0 can decrease with Extended Eigesolver's iterations as the size of the subspace decreases and that is not described in documentation. We will investigate this issue.

Best regards,

Irina

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

11-14-2016
01:20 AM

139 Views

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.