- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Regards,
Carl
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page