- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following code
include <iostream>
#include <mkl.h>
int main() {
MKL_INT iparm[64]{0};
MKL_INT mtype = -2;
MKL_INT nrhs = 1;
MKL_INT maxfct = 1, mnum = 1, phase = 11, error = 0, msglvl = 1;
double ddum;
MKL_INT idum;
void *pt[64]{0};
iparm[0] = 1;
iparm[34] = 1; // Zero-based indexing
iparm[1] = 0; // Minimum degree reordering
iparm[10] = 1; // Scaling
iparm[12] = 1; // Weighted matching
// 2-by-2 example
// [ 1 1 ]
// [ 1 1e-8]
double ele[3] = {1., 1., 1e-8};
MKL_INT indi[3] = {0, 1, 1};
MKL_INT start[3] = {0, 2, 3};
MKL_INT dim = 2;
pardiso(pt, &maxfct, &mnum, &mtype, &phase, &dim, ele, start, indi, NULL,
&nrhs, iparm, &msglvl, &ddum, &ddum, &error);
std::cout << "\n pardiso error code " << error << std::endl;
}
produces
*** Error in PARDISO ( insufficient_memory) error_num= 1
*** Error in PARDISO memory allocation: MATCHING_REORDERING_DATA, allocation of 1 bytes failed
total memory wanted here: 13 kbyte
=== PARDISO: solving a symmetric indefinite system ===
Summary: ( reordering phase )
================
Times:
======
Time spent in additional calculations : 0.001218 s
Total time spent : 0.001218 s
Statistics:
===========
Parallel Direct Factorization is running on 1 OpenMP
< Linear system Ax = b >
number of equations: 2
number of non-zeros in A: 2
number of non-zeros in A (%): 50.000000
number of right-hand sides: 1
< Factors L and U >
< Preprocessing with multiple minimum degree, tree height >
< Reduction for efficient parallel factorization >
number of columns for each panel: 128
number of independent subgraphs: 0
number of supernodes: 0
size of largest supernode: 0
number of non-zeros in L: 0
number of non-zeros in U: 0
number of non-zeros in L+U: 0
pardiso error code -2
How can this be explained? Bug or?
Thank you,
Ned
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ned,
it looks like a bug. Could you try another reordering ( iparm[1] == 2 or 3) mode and enable the matrix checker (iparm[26]==1 ?
-Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is ok with 2 or 3. Hope you can fix this problem.
Ned
Ned
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ned,
We are still looking at the issue. We will let you the status once we discover the problem.
Best regards,
Khang
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page