Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
7234 Discussions

Error code is misleading when running PARDISO out-of-core

jaewonj
Novice
1,127 Views

In case I do not have write permission to the current working directory, PARDISO OOC returns an error code of -2 ("not enough memory") at phase 11. It would be great if PARDISO OOC returns -11 ("read/write problems with the OOC data file"), or at lease -9 or -10.

Can this be fixed in the next release?

Thanks.

Jaewon


===================================

pardiso-ooc.c

#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "mkl.h"
#include "mkl_spblas.h"
#include "mkl_service.h"
#include "mkl_solver.h"

int main ()
{
char transa = 'N';
MKL_INT i, n = 2;
MKL_INT ia[3] = {1, 3, 5};
MKL_INT ja[4] = {1, 2, 1, 2};
double aa[4] = {3., 4., 5., 6.};
double x[2], x_exact[2] = {1., 2.}, b[2];
MKL_INT mtype, nrhs = 1;
void *pt[64];
MKL_INT iparm[64], maxfct = 1, mnum = 1, phase, error = 0, msglvl = 0;

for (i = 0; i < 64; ++i) {
iparm = 0;
pt = 0;
}

mtype = 11;
iparm[0] = 1;
iparm[1] = 3; /* PARMETIS */
iparm[2] = 1; /* currently not used */
iparm[5] = 0; /* write solution to rhs : 0 (no), 1 (yes) */
iparm[7] = 1; /* max number of iterative refinement */
iparm[26] = 1; /* input matrix check */
iparm[27] = 0; /* double precision. use 1 for single precision */

/* 0 for in-core, 2 for out-of-core
Set environmental MKL_PARDISO_OOC_MAX_CORE_SIZE
if necessary (default is 2000 MB).

export MKL_PARDISO_OOC_KEEP_FILE=0 stores temporary files.
*/
iparm[59] = 2;

/* compute RHS based on exact solution */
mkl_dcsrgemv(&transa, &n, aa, ia, ja, x_exact, b);

phase = 11;
PARDISO (pt, &maxfct, &mnum, &mtype, &phase,
&n, aa, ia, ja, NULL, &nrhs,
iparm, &msglvl, NULL, NULL, &error);
printf("At phase %d, error code = %d\\n", phase, error);

/* this has been fixed in 10.2.4 */
/*system("rm ooc*");*/

phase = 22;
PARDISO (pt, &maxfct, &mnum, &mtype, &phase,
&n, aa, ia, ja, NULL, &nrhs,
iparm, &msglvl, NULL, NULL, &error);
printf("At phase %d, error code = %d\\n", phase, error);

phase = 33;
iparm[7] = 2; /* Max numbers of iterative refinement steps. */
PARDISO (pt, &maxfct, &mnum, &mtype, &phase,
&n, aa, ia, ja, NULL, &nrhs,
iparm, &msglvl, b, x, &error);
printf("At phase %d, error code = %d\\n", phase, error);

phase = -1;
PARDISO (pt, &maxfct, &mnum, &mtype, &phase,
&n, aa, ia, ja, NULL, &nrhs,
iparm, &msglvl, NULL, NULL, &error);
printf("At phase %d, error code = %d\\n", phase, error);

printf("\\nx = %f, %f\\n\\n", x[0], x[1]);

return 0;
}

0 Kudos
7 Replies
Gennady_F_Intel
Moderator
1,127 Views

Jaewonj,

Yes, this request looks reasonable, the error message should be changed for these cases.This issue has been submitted to our internal development tracking database for further investigation, we will inform you once a new update becomes available.Here is a bug tracking number for your reference:DPD200090882

--Gennady

0 Kudos
Sergey_Solovev__Inte
New Contributor I
1,127 Views

Jaewonj,

Thank you for test case!

I compiled and linked it with MKL10.2Update4 but didnt get error -2. Could you set msglvl=1; and provied us with output statistic?

Anyway, I got the follow strange output info:

PARDISO_OOC_OPEN_FILE_ERROR occured: blkl: open file for storing ind

At phase 11, error code = 0

It is incorrect. In MKL10.2Update5 we fixed some issues about OOC error information. I linked test with Update5 and got correct output:

At phase 11, error code = -10

So, I think that your problem already fixed in MKL10.2Update5

0 Kudos
jaewonj
Novice
1,127 Views

Sergey,

That is good news. Thanks.

Anyway, here is the output. Please search for "At phase 11, error code = -2".

Jaewon

The file ./pardiso_ooc.cfg was not opened

=== PARDISO is running in Out-Of-Core mode, because iparam(60)=2 ===

PARDISO_OOC_OPEN_FILE_ERROR occured: blkl: open file for storing ind

*** Error in PARDISO ( insufficient_memory) error_num= -800

*** Error in PARDISO memory allocation: STRUC_FI, size to allocate: 1927254944 bytes

total memory wanted here: 6076389 kbyte

symbolic (max): 72 symbolic (permanent): 6076389

real(including 1 factor): 0

================ PARDISO: solving a real nonsymmetric system ================

Summary PARDISO: ( reorder to reorder )

================

Times:

======

Time fulladj: 0.000005 s

Time reorder: 0.000065 s

Time symbfct: 0.000034 s

Time malloc : 0.000150 s

Time total : 0.000258 s total - sum: 0.000004 s

Statistics:

===========

1

#equations: 2

#non-zeros in A: 4

non-zeros in A (%): 100.000000

#right-hand sides: 1

#columns for each panel: 128

#independent subgraphs: 0

#supernodes: 1

size of largest supernode: 2

number of nonzeros in L 4

number of nonzeros in U 1

number of nonzeros in L+U 5

At phase 11, error code = -2

*** Error in PARDISO ( sequence_ido,parameters) error_num= 100000

*** Error in PARDISO: clean impossible (ido?)

================ PARDISO: solving a real nonsymmetric system ================

Summary PARDISO: ( factorize to factorize )

================

Times:

======

Time total : 0.000013 s total - sum: 0.000013 s

Statistics:

===========

1

#equations: 2

#non-zeros in A: 4

non-zeros in A (%): 100.000000

#right-hand sides: 1

#columns for each panel: 128

#independent subgraphs: 0

#supernodes: 1

size of largest supernode: 2

number of nonzeros in L 4

number of nonzeros in U 1

number of nonzeros in L+U 5

gflop for the numerical factorization: 0.000000

At phase 22, error code = -1

*** Error in PARDISO ( sequence_ido,parameters) error_num= 100000

*** Error in PARDISO: clean impossible (ido?)

================ PARDISO: solving a real nonsymmetric system ================

Summary PARDISO: ( solve to solve )

================

Times:

======

Time total : 0.000011 s total - sum: 0.000011 s

==============================================================

----------- Out of core time (in percent (%)) --------------

Factorization step (100 (%)):

write to files : 0

read from files: 0

factorization - write&read : 100

Solution step (100 (%)):

read from files: 0

solve - write&read: 100

Total time (100 (%)):

read from files: 0

total - write&read: 100

----------- Out of core Mb --------------

Factorization step:

write to files : 0.000 Mb

read from files: 0.000 Mb

Solution step:

read from files: 0.000 Mb

Total size of data transferred :

write&read : 0.000 Mb

==============================================================

Statistics:

===========

1

#equations: 2

#non-zeros in A: 4

non-zeros in A (%): 100.000000

#right-hand sides: 1

#columns for each panel: 128

#independent subgraphs: 0

#supernodes: 1

size of largest supernode: 2

number of nonzeros in L 4

number of nonzeros in U 1

number of nonzeros in L+U 5

gflop for the numerical factorization: 0.000000

At phase 33, error code = -1

At phase -1, error code = 0

x = 0.000000, 0.000000

0 Kudos
jaewonj
Novice
1,127 Views

Sergey,

I'm not sure if you need this but just in case.

jaewonj@jaewonjlx:/usr/local$ uname -a

Linux jaewonjlx 2.6.31-20-generic #57-Ubuntu SMP Mon Feb 8 09:02:26 UTC 2010 x86_64 GNU/Linux

jaewonj@jaewonjlx:/usr/local$ cat /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 15

model name : Intel Core2 CPU 6600 @ 2.40GHz

stepping : 6

cpu MHz : 600.000

cache size : 4096 KB

physical id : 0

siblings : 2

core id : 0

cpu cores : 2

apicid : 0

initial apicid : 0

fpu : yes

fpu_exception : yes

cpuid level : 10

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow

bogomips : 4787.66

clflush size : 64

cache_alignment : 64

address sizes : 36 bits physical, 48 bits virtual

power management:

...



0 Kudos
Sergey_Solovev__Inte
New Contributor I
1,127 Views

Jaewonj, thank you!

I checked it. This problem has been fixed in MKL10.2 Update5

0 Kudos
Gennady_F_Intel
Moderator
1,127 Views
Jaewonj,

The problem you reported was fixed in the version 10.2 Update 5.This version available for download from intel registration center: https://registrationcenter.intel.com/

Please check it and let us know if any others problem.

--Gennady

0 Kudos
jaewonj
Novice
1,127 Views
Thanks Gennady.
Confirmed that the problem has been fixed in 10.2.5.

Jaewon



0 Kudos
Reply