Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6651 Discussions

pardiso_64 schur complement with pardiso_export (for sparse matrix output)

Jens_E_
New Contributor I
1,138 Views

Hi,

 

How can I use pardiso_64 (schur complement calculation) with pardiso_export (in order to export the result as a sparse matrix)?

My issue is with the "_64" and how to handle the transfer of integer pointers between these two calls. As pardiso_export accepts MKL_INT (32-bit integer) this does not seem to be compatible.

The example here pardiso_export (intel.com) is great but only for the regular pardiso call (no _64).

 

Jens

Labels (2)
0 Kudos
11 Replies
Gennady_F_Intel
Moderator
1,113 Views

Hi Jens,

I think it's not possible without introducing the pardiso_export_64 API or some straightforward copying 32-bit working arrays to 64 bit ones.  

-Gennady

Jens_E_
New Contributor I
1,106 Views

Hi,

 

Okay, thanks.

Follow-up question: with iparm[35]=1 the schur complement is outputed as a dense matrix. In this case I currently do pardiso phase=12, and then subsequently phase 331 in order to use the internal matrix arrays to compute associated reduced right-hand side matrices (loads).

It seems that phase 331 is not supported following phases 11 and 22 when iparm[35]=-1. I just get a zero output. Can you confirm?

 

Kirill_V_Intel
Employee
989 Views

Hi Jens!

 

As the docs say, when you set iparm[35] = 1, only the Schur complement is computed and not the factorization arrays. So it makes sense that phase 331 cannot do anything, as it would require factorization arrays. Consider switching to iparm[35]=2.

 

Best,
Kirill

Jens_E_
New Contributor I
1,093 Views

It appears that the issue is the that perm parameter outputted for phase=12 (or 22) is unchanged (i.e. still contains 1's for the schur complement entries and otherwise 0's). So when I run phase 331 and 333 subsequently I don't have a way of looking up the internally reordered entries, it seems ...

Jens_E_
New Contributor I
1,040 Views

@Gennady_F_Intel just bumping this in case it was not registered as a new issue

Kirill_V_Intel
Employee
991 Views

Hi Jens!

Sorry for some delays.

For the original question: so you pass 64-bit integer arrays for the input matrix and use pardiso_64 and then you compute the Schur complement and want the Schur complement also returned for 64-bit integer arrays?

1) Because if you're fine with 32-bit integer arrays, it should work.

2) if you do want 64-bit integer arrays returned from pardiso_export and if it is critical for your application, I think there is a hack to do that but it won't be a recommended way, just a temporary workaround. 

For the other questions about the Schur complement, I'll try to respond a bit later [unless someone else does that].

Best,
Kirill

Gennady_F_Intel
Moderator
945 Views

Jens,

Are there any updates?

Have been your questions been addressed by Kirill?




Jens_E_
New Contributor I
938 Views

Hi,

 

Thanks for your message. No, unfortunately not. I understand that "pardiso" together with "pardiso_export" works (i.e., 32-bit). But the question was about extracting the same info when using "padiso_64" and i don't see that the respose answers that question.

 

Jens

Gennady_F_Intel
Moderator
917 Views

Jens,

I suggest You submit the Feature Request "Pardiso_export_64" to the Intel Online Sevice Center. Having this API will let you an opportunity to work with the pardiso_64 routine.

Gennady



VidyalathaB_Intel
Moderator
458 Views

Hi Jens,


Thank you for your feedback. We have provided your feedback to the relevant team. At this moment there is no visibility when it will be implemented and available for use. Please let me know if we can go ahead and close this case?


Regards,

Vidya.


VidyalathaB_Intel
Moderator
437 Views

Hi Jens,


As we haven't heard back from you, we are closing this thread. Please post a new question if you need any additional assistance from Intel as this thread will no longer be monitored.


Regards,

Vidya.


Reply