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

Hi,

I'm using pardiso_64 with intel mkl 11.3.3.1.

I am computing the Schur complement of SPD matrices (mtype = 2). In in-core mode everything is OK. In out-of-core mode (iparm(60)=2), I get no error code, but just an all-zero solution matrix.

My iparm array is as follows:

iparm(1) = 1;

iparm(10)=8;

iparm(21)=1;

iparm(35)=1;

iparm(60)=2;

(otherwise zero values).

I've set the phase parameter to 12.

Am I doing something wrong, or is only in-core mode possible for Schur complement calculation?

Best,

Jens

Link Copied

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

Hi Jens,

I can reproduce your problem. we will investigate on this problem. Thank you for posting.

Best regards,

Fiona

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

Thanks!

While waiting for the investigation: are there other options within MKL to (easiliy) compute the Schur complement for sparse matrices, using the DSS interface for example?

Jens

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

Hi Jens,

We checked that Schur complement compute only for in-core mode of PARDISO in current version. I am afraid only pardiso provided implementation for Schur complement matrix, but DSS & Iterative solver do not provide.

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

Okay, thanks for letting me know.

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

Fiona and readers,

I am having the same issue that Jens was having and there has been no mention of the functionality to compute the Schur complement while using out-of-core in any of the recent release notes. Is Intel planning to make it possible to compute the Schur complement using OOC stored factors for either PARDISO or the Parallel Direct Sparse Solver for Clusters Interface?

In the mean time, are there packages you are able to suggest that are MPI and thread parallel that can compute the Schur complement on a large sparse matrix with an ability to distribute the Schur block? MKL's Parallel Direct Sparse Solver for Clusters interface would work however, it stores the Schur block on a single node which, for my problems, uses all the nodes memory and brings down the node.

I am using Intel MKL 2018 update 2.

Thank you for your time,

Taylor

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

Hi,

MKL 2018.2 support Schur complement computation in OOC Intel MKL Pardiso in case matching and scaling are switched off

Thanks,

Alex

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

Alex and readers,

I believe I interpreted your statement correctly. However, to confirm, do you mean that both matching and scaling must be turned off for the Schur complement operation to be compatible with OOC? Or do you mean that they have to both be enabled to get Schur to be compatible with OOC?

I have tried both and am still getting the same result(zero result for Schur block). MType is 13 (complex non-symmetric). Below are my iparm settings

iparm(1) = 1 ! Default parameters overriden with provided by iparm iparm(2) = 2 ! METIS for fill-in reordering iparm(10) = 13 ! Perturb the pivot elements with 1E-13 */ iparm(11) = 1 ! Use nonsymmetric permutation and scaling MPS */ iparm(13) = 1 ! Switch on Maximum Weighted Matching algorithm (default for non-symmetric) */ iparm(18) = -1 ! Output: Number of nonzeros in the factor LU */ iparm(19) = -1 ! Output: Mflops for LU factorization */ iparm(27) = 1 ! Check input data for correctness */ iparm(35) = 0 ! One-based indexing */ iparm(36) = 1 ! Schur complement matrix computation iparm(60) = 2 ! OOC Mode

Thank you

Taylor

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

Hi Taylor,

Can you also set iparm(24) to 1, iparm(11), iparm(13) to 0 and try to run pardiso again?

Thanks,

Alex

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