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

Calculation of the diagonal component of OneAPI's inverse matrix produces a negative result.

Yelim
Beginner
829 Views

I used OneAPI's "Calculate diagonal component of an inverse matrix" feature.

However, in some cases, negative results occurred.

Originally, negative values should not occur.

The versions I used are Pardiso 2019 update5 and One API 2022.

In both cases, the same symptom occurred.

Is the matrix size too large causing the overflow?

 

The information I used is as follows, so please check it.

* matrix type : -2

* n : 1159765511

* size of ia : 1159765511 + 1

* size of ja, a : 3065293127

* function : pardiso_64

* iparm : initialize zero

iparm[0] = 1; /* No solver default */
iparm[1] = 3; /* Fill-in reordering from METIS */
/* Numbers of processors, value of OMP_NUM_THREADS */
//iparm[2] = 1;
iparm[3] = 0; /* No iterative-direct algorithm */
iparm[4] = 0; /* No user fill-in reducing permutation */
iparm[5] = 0; /* Write solution into x */
iparm[6] = 0; /* Not in use */
iparm[7] = 0; /* Max numbers of iterative refinement steps */
iparm[8] = 0; /* Not in use */
iparm[9] = 13; /* Perturb the pivot elements with 1E-13 */
//iparm[10] = 1; /* Use nonsymmetric permutation and scaling MPS */
iparm[10] = 0; /* Use nonsymmetric permutation and scaling MPS */
iparm[11] = 0; /* Not in use */
iparm[12] = 0; /* Maximum weighted matching algorithm is switched-off (default for symmetric). Try iparm[12] = 1 in case of inappropriate accuracy */
iparm[13] = 0; /* Output: Number of perturbed pivots */
iparm[14] = 0; /* Not in use */
iparm[15] = 0; /* Not in use */
iparm[16] = 0; /* Not in use */
iparm[17] = -1; /* Output: Number of nonzeros in the factor LU */
iparm[18] = -1; /* Output: Mflops for LU factorization */
iparm[19] = 0; /* Output: Numbers of CG Iterations */

// inv of diag
iparm[23] = 1;
iparm[42] = 1;

 

 

0 Kudos
6 Replies
VarshaS_Intel
Moderator
802 Views

Hi,


Thanks for posting in Intel Communities.


Could you please let us know the OS details you are using?


Could you please provide us with the complete sample reproducer code, all the dependency files, and steps in order to reproduce the same behavior at our end?


Also, could you please try using the latest version of Intel MKL(2023.1) and let us know if you are still facing any errors?


Thanks & Regards,

Varsha


0 Kudos
VarshaS_Intel
Moderator
747 Views

Hi,


We have not heard back from you. Could you please provide us with an update on your issue?


Thanks & Regards,

Varsha


0 Kudos
Yelim
Beginner
734 Views

Hi It took me a long time to find a suitable example to upload.
The OS of the equipment I am running is RHEL6 and it has 6TB of memory.
First of all, I'll upload an example file with the case of the problem
When I perform the diagonal of inverse matrix with the data below, sometimes it contains negative numbers and sometimes it doesn't.
I really hope it gets resolved.

nnz:7492002
nrow: 9515
ia file : ia.txt(size is nrow + 1)
ja file : ja.txt(size is nnz)
a file : a.txt(size is nnz)

0 Kudos
VarshaS_Intel
Moderator
660 Views

Hi,


Thanks for the information.


When we tried at our end, we were getting an invalid matrix input error so could you please provide us with the complete sample reproducer code you are using so that we both can be on the same phase and it will be better to investigate?


Thanks & Regards,

Varsha


0 Kudos
VarshaS_Intel
Moderator
591 Views

Hi,


We have not heard back from you. Could you please provide us with the sample reproducer code you are using?


Thanks & Regards,

Varsha


0 Kudos
VarshaS_Intel
Moderator
536 Views

Hi,


We have not heard back from you. This thread will no longer be monitored by Intel. If you need additional information, please start a new thread.


Thanks & Regards,

Varsha


0 Kudos
Reply