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

Newbie problem with PARDISO

geoff1234
Beginner
580 Views
I am evaluating Intel MKL and I am interested in the sparse solver. I am using Microsoft Visual Studio 2005 and I am trying to run the example pardiso_sym_c.c I was able to run a 32 bit version linking to the ia32 library. But an access violation occurs when using the em64t library during the first PARDISO call. I am having a hard time trying to find which libraries to link to and proper compiler flags to use. Has anyone encountered similar issues?

Thanks,
Geoff
0 Kudos
6 Replies
geoff1234
Beginner
580 Views
I was able to stop getting the exception by defining MKL_ILP64, in case someone gets the same behavior...
0 Kudos
geoff1234
Beginner
580 Views
I am using the em64t with the example "Example C-7. pardiso_sym.c for Symmetric Linear Systems" in mklman.pdf and the solver does not return the same answer. I compiled using ia32 and the answer checked out. Is there something I am missing? Here is the output from em64t with the mklman.pdf example afterwards:


================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( reorder to reorder )
================

Times:
======

Time fulladj: 0.020622 s
Time reorder: 0.084064 s
Time symbfct: 0.000406 s
Time parlist: 0.000003 s
Time malloc : -0.071197 s
Time total : 0.034648 s total - sum: 0.000750 s

Statistics:
===========
2



#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000
#right-hand sides: 1


#columns for each panel: 80
#independent subgraphs: 0

#supernodes: 4
size of largest supernode: 4
number of nonzeros in L 31
number of nonzeros in U 1
number of nonzeros in L+U 32

Reordering completed ...
Number of nonzeros in factors = 32
Number of factorization MFLOPS = 0
================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( factorize to factorize )
================

Times:
======

Time A to LU: 0.000000 s
Time numfct : 0.132393 s
Time malloc : -0.080632 s
Time total : 0.051762 s total - sum: 0.000001 s

Statistics:
===========
2



#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000
#right-hand sides: 1


#columns for each panel: 80
#independent subgraphs: 0

#supernodes: 4
size of largest supernode: 4
number of nonzeros in L 31
number of nonzeros in U 1
number of nonzeros in L+U 32
gflop for the numerical factorization: 0.000000
gflop/s for the numerical factorization: 0.000001

Factorization completed ...
================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( solve to solve )
================

Times:
======

Time solve : 0.091132 s
Time total : 0.0105 48 s total - sum: -0.080584 s

Statistics:
===========
2



#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000
#right-hand sides: 1


#columns for each panel: 80
#independent subgraphs: 0

#supernodes: 4
size of largest supernode: 4
number of nonzeros in L 31
number of nonzeros in U 1
number of nonzeros in L+U 32
gflop for the numerical factorization: 0.000000
gflop/s for the numerical factorization: 0.000001

Solve completed ...
The solution of the system is:
x [0] = 0.001648
x [1] = 0.026780
x [2] = -0.021881
x [3] = -0.381206
x [4] = 0.641086
x [5] = 0.125631
x [6] = 0.110354
x [7] = 0.096250

mklman.pdf:

Reordering completed ...
Number of nonzeros in factors = 30
Number of factorization MFLOPS = 0
Factorization completed ...
Solve completed ...
The solution of the system is
x(1) = -0.0418602013
x(2) = -0.00341312416
x(3) = 0.117250377
x(4) = -0.11263958
x(5) = 0.0241722445
x(6) = -0.10763334
x(7) = 0.198719673
x(8) = 0.190382964

Thank you for any help.
0 Kudos
smth
Beginner
580 Views
Can you tell me how to successfully run the 32 bit verison pardiso-sym.c ? I have bulit a program just copy the pardiso-sym.c in Visual C++ 2005. And I got the terrible error:
unresolved symbol _mkl_solver_pardiso .


0 Kudos
geoff1234
Beginner
580 Views
First I added the appropriate directories for include, executables and libraries in Tools...Options..VC++ directories.

I also added the following libraries to link to

mkl_c.lib mkl_solver.lib mkl_core.lib libguide.lib libiomp5mt.lib
0 Kudos
Todd_R_Intel
Employee
580 Views

smth:
Did adding some libraries to your project fix the problem as geof1234 suggested?

Additionally, I want to point out that among the libraries mentioned, some are compatibility (or dummy) libraries. You might want to use the new names to get you pointed in the right direction as you start out:

mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5mt.lib

Hope youve got it working.

geoff1234:
We might need a test case from you to really figure things out, but one thing I noticed is that you mentioned use of MKL_ILP64 but also suggested above the use of a dummy lib. The MKL_ILP64 would suggest youre using the ILP64 interface (and thus 64-bit integer parameters), but use of the mkl_em64t.lib dummy lib would automatically link mkl_intel_lp64.lib which is the interface lib for LP64 use (32-bit integer parameters). Anyway if this doesnt ring any bells wed probably need more info from you even though youre using an example straight from the book.

-Todd

0 Kudos
smth
Beginner
580 Views
Thanks, MAD rosenqu and geoff1234
It works.


0 Kudos
Reply