Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jens_E_
New Contributor I
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).

Labels (1)
Tags (1)
0 Kudos
1 Reply
Kirill_V_Intel
Employee
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.

See https://software.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-fortra...

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