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

PARDISO Linking Error

rlc138
Beginner
900 Views
Hi.

I have successfully linked to the pardiso library for a 32-bit application, but I cannot get a successful link for a 64-bit application. I am working with Microsoft Visual Studio 2008 (and have also been unsuccessful at building a 64-bit version using gcc-4.3.1 on a linux platform, which is ultimately where I am going with this).

For 32-bit I am linking with the following libraries (this works): mkl_solver.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libguide40.lib

For 64-bit I am trying to link with the following libraries (this does not work):
mkl_solver_lp64.lib mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libguide40.lib

The error message is:
1>Linking...
1>pardiso_unsym.obj : error LNK2001: unresolved external symbol pardiso_
1>pardiso_unsym.obj : error LNK2001: unresolved external symbol pardisoinit_

Both the linux and my desktop (windows) computershave Intel processors.

I suspect I am not including the correct libraries (or not including them in the correct order). Can someone please help?

Rob
0 Kudos
5 Replies
ArturGuzik
Valued Contributor I
900 Views
Quoting - rlc138
Hi.

I have successfully linked to the pardiso library for a 32-bit application, but I cannot get a successful link for a 64-bit application. I am working with Microsoft Visual Studio 2008 (and have also been unsuccessful at building a 64-bit version using gcc-4.3.1 on a linux platform, which is ultimately where I am going with this).

For 32-bit I am linking with the following libraries (this works): mkl_solver.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libguide40.lib

For 64-bit I am trying to link with the following libraries (this does not work):
mkl_solver_lp64.lib mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libguide40.lib

The error message is:
1>Linking...
1>pardiso_unsym.obj : error LNK2001: unresolved external symbol pardiso_
1>pardiso_unsym.obj : error LNK2001: unresolved external symbol pardisoinit_

Both the linux and my desktop (windows) computershave Intel processors.

I suspect I am not including the correct libraries (or not including them in the correct order). Can someone please help?

Rob
Rob,

the Linker Help suggests the following for 64:

mkl_solver_ilp64.lib mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

and this works for me (VS2008, Fortran). You should also take a look at Gennady's page dealing with PARDISO.

A.
0 Kudos
rlc138
Beginner
900 Views
Quoting - ArturGuzik
Rob,

the Linker Help suggests the following for 64:

mkl_solver_ilp64.lib mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

and this works for me (VS2008, Fortran). You should also take a look at Gennady's page dealing with PARDISO.

A.

Thanks, but that does not work. I forgot to mention that I am working with C/C++ (for now just trying to compile the example pardiso_unsym.c). I am currently using MKL version 10.0.2.019 on my Windows machine and version 10.1.0.015 on Linux.
0 Kudos
jaewonj
Novice
900 Views
Quoting - rlc138

Thanks, but that does not work. I forgot to mention that I am working with C/C++ (for now just trying to compile the example pardiso_unsym.c). I am currently using MKL version 10.0.2.019 on my Windows machine and version 10.1.0.015 on Linux.

May work by replacing pardiso_ with PARDISO for MKL 10.1.

I believe pardisoinit is only available when linking against author's library not MKL.

http://www.pardiso-project.org/
0 Kudos
Gennady_F_Intel
Moderator
900 Views
Quoting - rlc138

Thanks, but that does not work. I forgot to mention that I am working with C/C++ (for now just trying to compile the example pardiso_unsym.c). I am currently using MKL version 10.0.2.019 on my Windows machine and version 10.1.0.015 on Linux.

rlcampbell,
i checked the probelm but only with 10.0 update 4 version on win64 and with the pardis0_unsym and i didn't encountered the probelm.
see below how i did it:

set lib=C:appsintelMKL10.0.4em64tlib;%lib%
set path=C:appsintelMKL10.0.4em64tbin;%path
set include=C:appsintelMKL10.0.4include;%include%

icl /w /Fetestem64.exe pardiso_unsym_c.c mkl_solver_lp64.lib mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

pardiso_unsym_c.c

pardiso_unsym_c.c(87): (col. 2) remark: LOOP WAS VECTORIZED.

pardiso_unsym_c.c(90): (col. 2) remark: BLOCK WAS VECTORIZED.

pardiso_unsym_c.c(119): (col. 2) remark: LOOP WAS VECTORIZED.

pardiso_unsym_c.c(155): (col. 2) remark: LOOP WAS VECTORIZED.

Microsoft Incremental Linker Version 8.00.50727.42

Copyright (C) Microsoft Corporation. All rights reserved.

-out:testem64.exe

pardiso_unsym_c.obj

mkl_solver_lp64.lib

mkl_intel_lp64.lib

mkl_intel_thread.lib

mkl_core.lib

libiomp5md.lib

>>>>>

Intel C++ Compiler for applications running on Intel 64, Version 10.1 Build 20080

801 Package ID: w_cc_p_10.1.025

Copyright (C) 1985-2008 Intel Corporation. All rights reserved.

--Gennady


0 Kudos
rlc138
Beginner
900 Views

rlcampbell,
i checked the probelm but only with 10.0 update 4 version on win64 and with the pardis0_unsym and i didn't encountered the probelm.
see below how i did it:

set lib=C:appsintelMKL10.0.4em64tlib;%lib%
set path=C:appsintelMKL10.0.4em64tbin;%path
set include=C:appsintelMKL10.0.4include;%include%

icl /w /Fetestem64.exe pardiso_unsym_c.c mkl_solver_lp64.lib mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

pardiso_unsym_c.c

pardiso_unsym_c.c(87): (col. 2) remark: LOOP WAS VECTORIZED.

pardiso_unsym_c.c(90): (col. 2) remark: BLOCK WAS VECTORIZED.

pardiso_unsym_c.c(119): (col. 2) remark: LOOP WAS VECTORIZED.

pardiso_unsym_c.c(155): (col. 2) remark: LOOP WAS VECTORIZED.

Microsoft Incremental Linker Version 8.00.50727.42

Copyright (C) Microsoft Corporation. All rights reserved.

-out:testem64.exe

pardiso_unsym_c.obj

mkl_solver_lp64.lib

mkl_intel_lp64.lib

mkl_intel_thread.lib

mkl_core.lib

libiomp5md.lib

>>>>>

Intel C++ Compiler for applications running on Intel 64, Version 10.1 Build 20080

801 Package ID: w_cc_p_10.1.025

Copyright (C) 1985-2008 Intel Corporation. All rights reserved.

--Gennady



Hi Gennady,

It turns out that it was the function name that was the problem - (I was using pardiso_unsym.c not pardiso_unsym_c.c). pardiso_unsym.c trys to link to pardiso_ instead of PARDISO. When I changed the function names, it linked without a problem.

Rob
0 Kudos
Reply