Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

Pardiso problem (maybe linking?)

hemocue
Beginner
170 Views
Hi all,
I am trying to compile a code from my advisor's previous student, but I cannot get it done.
Here is a part of the code that cause the error:
#ifdef AIX
#define F77_FUNC(func) func
#else
#define F77_FUNC(func) func ## _
#endif
...
extern "C" { int F77_FUNC(pardisoinit) (void *, int *, int *); }
extern "C" { int F77_FUNC(pardiso) (void *, int *, int *, int *, int *, int *, doublecomplex *, int *, int *, int *, int *, int *, int *, doublecomplex *, doublecomplex *, int *); }
...
F77_FUNC(pardisoinit) (pt, &mtype, iparm); <- line 525
And here is the error message I got:
/src/jfem3d.cpp:525: undefined reference to `pardisoinit_'
/src/jfem3d.cpp:633: undefined reference to `pardiso_'
/src/jfem3d.cpp:652: undefined reference to `pardiso_'
/src/jfem3d.cpp:668: undefined reference to `pardiso_'
/src/jfem3d.cpp:690: undefined reference to `pardiso_'
For the last four line, the functions are called just like line 525.
I am compiling it using icpc and linking options as follows:
-lmkl_solver -lmkl_ia32 -lmkl_lapack -lmkl_intel_thread -lmkl_intel -lmkl_core -lguide -lpthread -liomp5
Can anyone explain what I am doing wrong?
This code worked previously, so I guess it is a linking problem, unless higher version of MKL requires different usage.
(The code was working with MKL 10.0.3 which is not available to use right now.)
Thank you for looking.
0 Kudos
3 Replies
dahlberg
Beginner
170 Views
Not in any way an expert, but I see that you have a call to pardisoinit. This subroutine is associated with the University of Basel version of Pardiso and is not supported by the Intel version. What error messages do you get?

Regards,
Carl
Todd_R_Intel
Employee
170 Views

What version of Intel MKL and the Intel compilers are you using now? If you're using a recent version (Intel Composer XE 2011 or any of its updates) you can use the /Qmkl switch.

BTW, I see pardisoinit in the MKL reference manual.

Todd

hemocue
Beginner
170 Views
Thank you so much for your replies.
I am using 2011 XE compiler along with 10.0.5 version of MKL.
I will do some research on both topics you guys suggested.
Thanks again!
Reply