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

Pardiso with Cygwin

Rawlins__David
Beginner
986 Views
Hi,

I'm trying to run the sample program for Pardiso under Cygwin. This is my compile command:

g++ -o Pardiso.exe Pardiso.cpp -O3 C:/Program\ Files/Intel/MKL/10.1.1.022/ia32/lib/mkl_core.lib

I'm getting the following errors:

/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x6f): undefined reference to `_pardisoinit_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x290): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x33b): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x40c): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x4ab): undefined reference to `_pardiso_'

Any help would be appreciated.

Thanks,

Dave
0 Kudos
4 Replies
TimP
Honored Contributor III
986 Views
Hi,

I'm trying to run the sample program for Pardiso under Cygwin. This is my compile command:

g++ -o Pardiso.exe Pardiso.cpp -O3 C:/Program Files/Intel/MKL/10.1.1.022/ia32/lib/mkl_core.lib

I'm getting the following errors:

/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x6f): undefined reference to `_pardisoinit_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x290): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x33b): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x40c): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x4ab): undefined reference to `_pardiso_'

Any help would be appreciated.

Thanks,

Dave
This is difficult, not something you could accomplish without thought and research. MKL for Windows would use Microsoft conventions, so there would be no appended _ such as gfortran would expect. You may also require the cygwin utility for converting path conventions. The mingw cross compiler might be somewhat more appropriate, as you would require Windows like run time support.
You could use ICL or CL under cygwin by opening their command prompt window and running cygwin.bat to superimpose cygwin paths. If you had set up the MKL paths first, as would happen with ICL Professional, you wouldn't have to deal with incompatible installation paths.
0 Kudos
Rawlins__David
Beginner
986 Views
Quoting - tim18
This is difficult, not something you could accomplish without thought and research. MKL for Windows would use Microsoft conventions, so there would be no appended _ such as gfortran would expect. You may also require the cygwin utility for converting path conventions. The mingw cross compiler might be somewhat more appropriate, as you would require Windows like run time support.
You could use ICL or CL under cygwin by opening their command prompt window and running cygwin.bat to superimpose cygwin paths. If you had set up the MKL paths first, as would happen with ICL Professional, you wouldn't have to deal with incompatible installation paths.

Thanks, Tim. I think I'll just go with the VC++ compiler.

Dave
0 Kudos
Todd_R_Intel
Employee
986 Views
Tim is right to say this is non-trivial, but I did note that you also did not include all the libraries that are required.You'll need to add aninterface library to the link line and that will have the pardiso names that will call the functionality in the core library.The link line advisor might be helpful.

-Todd
0 Kudos
Rawlins__David
Beginner
986 Views
Tim is right to say this is non-trivial, but I did note that you also did not include all the libraries that are required.You'll need to add aninterface library to the link line and that will have the pardiso names that will call the functionality in the core library.The link line advisor might be helpful.

-Todd

Thanks, Todd. I got it running by using the link line advisor.

Cheers,

Dave
0 Kudos
Reply