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 Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- Pardiso: schur complement time usage

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

Jens_E_

New Contributor I

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

02-23-2021
04:39 AM

66 Views

Pardiso: schur complement time usage

Hi,

I'm computing the schur complement using iparm(36)=1. I do this in phases so that I first perform phase 331, then phase 332 in my own code, and then phase 333 in pardiso.

Prior to this, the schur complement matrix is calculated using phase 12.

It seems to me that one call (phase 331 then 333) with N right-hand sides is a lot faster than, say, 10 calls with N/10 right-hand sides. From the time usage it acutally seems like pardiso refactorizes the matrix for each subsequent call using phase 33x? Could this be?

I expected a single call (many rhs) to be faster than several calls (fewer rhs), but not by what seems to be a 10-fold (using the example above).

Link Copied

1 Reply

Kirill_V_Intel

Employee

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

02-25-2021
09:11 PM

27 Views

Hello,

The documentation says that iparm(36)=1 should be used when only Schur complement needs to be computed. If you want to do solves afterwards, you should better use iparm(36)=2. So I'd say that your iparm parameters are a bit off for your purposes.

So, is there a reason why you want to do solves with iparm(36)=1? If there is one, let us know so that we dive a bit and check whether we truly don't save what we unexpectedly need to compute (factorization arrays) in case iparm(36)=1.

I hope this helps.

Best,

Kirill

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