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

PARDISO and MINGW64

3rav
ビギナー
3,017件の閲覧回数

Hi,

 

I am trying to compile CalculiX (ccx) using INTEL MKL PARADISO static libraries .a in mingw but I have this error:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ccx_PardisoMKL_gcc.a(pardiso.o): in function `pardiso_factor':
C:\msys64\usr\local\CalculiX\ccx_2.15\src/pardiso.c:288: undefined reference to `pardiso_'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ccx_PardisoMKL_gcc.a(pardiso.o): in function `pardiso_solve':
C:\msys64\usr\local\CalculiX\ccx_2.15\src/pardiso.c:319: undefined reference to `pardiso_'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ccx_PardisoMKL_gcc.a(pardiso.o): in function `pardiso_cleanup':
C:\msys64\usr\local\CalculiX\ccx_2.15\src/pardiso.c:341: undefined reference to `pardiso_'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ccx_PardisoMKL_gcc.a(pardiso_as.o): in function `pardiso_factor_as':
C:\msys64\usr\local\CalculiX\ccx_2.15\src/pardiso_as.c:161: undefined reference to `pardiso_'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ccx_PardisoMKL_gcc.a(pardiso_as.o): in function `pardiso_solve_as':
C:\msys64\usr\local\CalculiX\ccx_2.15\src/pardiso_as.c:184: undefined reference to `pardiso_'

 

I would like to add that I managed to compile the Linux version with the same Makefile. I also compiled in the "mingw" environment with the .dll libraries but now I want to compile with .a library.

 

ccx_PardisoMKL_gcc: $(OCCXMAIN) ccx_PardisoMKL_gcc.a \
./date.pl; $(CC) $(CFLAGS) -c ccx_2.15.c; \
$(FC) $(OPT) $(FFLAGS) -o $@ $(OCCXMAIN) ccx_PardisoMKL_gcc.a $(LIBS) $(LDFLAGS) \
-Wl,--start-group \
$(MKL_LIB)/libmkl_gf_lp64.a \
$(MKL_LIB)/libmkl_gnu_thread.a \
$(MKL_LIB)/libmkl_core.a \
-Wl,--end-group \
-lgomp -lpthread -lm -ldl

 

When I delete the library libmkl_gf_lp64.a on LinuxI have similar error:

 

ccx_2.15.c:61:22: warning: ‘nxstate’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     *ipoinpc=NULL,mt,nxstate,nload0,iload,*iuel=NULL;
                      ^~~~~~~
ccx_PardisoMKL_gcc.a(pardiso.o): In function `pardiso_factor':
/usr/local/ccx_2.15/src_t1/pardiso.c:288: undefined reference to `pardiso_'
ccx_PardisoMKL_gcc.a(pardiso.o): In function `pardiso_solve':
/usr/local/ccx_2.15/src_t1/pardiso.c:319: undefined reference to `pardiso_'
ccx_PardisoMKL_gcc.a(pardiso.o): In function `pardiso_cleanup':
/usr/local/ccx_2.15/src_t1/pardiso.c:341: undefined reference to `pardiso_'
ccx_PardisoMKL_gcc.a(pardiso_as.o): In function `pardiso_factor_as':
/usr/local/ccx_2.15/src_t1/pardiso_as.c:161: undefined reference to `pardiso_'
ccx_PardisoMKL_gcc.a(pardiso_as.o): In function `pardiso_solve_as':
/usr/local/ccx_2.15/src_t1/pardiso_as.c:184: undefined reference to `pardiso_'
ccx_PardisoMKL_gcc.a(pardiso_as.o):/usr/local/ccx_2.15/src_t1/pardiso_as.c:200: more undefined references to `pardiso_' follow
collect2: error: ld returned 1 exit status
Makefile_mkl:43: recipe for target 'ccx_PardisoMKL_gcc' failed
make: *** [ccx_PardisoMKL_gcc] Error 1

0 件の賞賛
8 返答(返信)
ShanmukhS_Intel
モデレーター
2,982件の閲覧回数

Hi,

 

Thank you for posting on Intel communities.

 

Could you please let us know if you are able to execute the code successfully on oneAPI command prompt? In addition, could you please cross-verify if the dependent libraries were linked correctly using Intel link line advisor? (if you are not able to link using oneAPI command prompt) For more help regarding details and usage of Intel link line advisor, please refer to the below link.

https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html

 

Regarding the compatibility of Intel oneAPI MKL, please refer to the below link.

https://www.intel.com/content/www/us/en/developer/articles/system-requirements/oneapi-math-kernel-library-system-requirements.html

 

In addition, We would like to request you to share your environment details as well.

 

Best Regards,

Shanmukh.SS

 

ShanmukhS_Intel
モデレーター
2,934件の閲覧回数

Hi,


A gentle reminder:

Has the information provided helped? Could you please get back to us with the required details so that we could look further into your issue?


Best Regards,

Shanmukh.SS


3rav
ビギナー
2,915件の閲覧回数

Yes, I have used this tool, but please note that there is no combination for:

 

Select OS: Windows and Select compiler: GCC/gfortran  (mingw)

 

I also wrote on the mingw forum: https://github.com/msys2/MINGW-packages/issues/12282

ShanmukhS_Intel
モデレーター
2,902件の閲覧回数

Hi,


Please refer to the below link regarding the compatibility and system requirements of Intel oneMKL.


https://www.intel.com/content/www/us/en/developer/articles/system-requirements/oneapi-math-kernel-library-system-requirements.html


Best Regards,

Shanmukh.SS


ShanmukhS_Intel
モデレーター
2,867件の閲覧回数

Hi,


A gentle reminder:

Has the information provided helped? Kindly let us know if we could close this thread at our end.


Best Regards,

Shanmukh.SS


ShanmukhS_Intel
モデレーター
2,828件の閲覧回数

Hi,


We assume that your issue is resolved. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel. 


Best Regards,

Shanmukh.SS




3rav
ビギナー
2,358件の閲覧回数

I'm going to add the CalculiX package to the msys2/mingw repository by PKGBUILD:  https://github.com/msys2/MINGW-packages .
I would like the CalculiX program (ccx: https://www.calculix.de/) to be compiled to use the oneMKL libraries, more precisely PARDISO (required files for compilation: mkl_rt.lib and mkl.h).
My question is whether I can add the required files to build the package, and if so, what is the best way to add them (copy them, is it possible to somehow download individual files from your website)?

 

MKL=/usr/local/mkl/2022.1.0

CFLAGS=-I$(MKL)/include

LIBS=$(MKL)/lib/intel64/mkl_rt.lib

 

Later, the end user will have to download the oneAPI package for the program to work properly (required libraries for operation: mkl_gf_lp64.dll, mkl_gnu_thread.dll, mkl_core.dll and mkl_rt.dll).

 

Maybe Intel itself will add the oneAPI/oneMKL package to the msys2/mingw repo,  header files and libraries only "linking" (like mkl_rt)?

3rav
ビギナー
2,284件の閲覧回数

Similar like this (only for msys2/mingw -> Windows version -> .dll): https://pypi.org/project/mkl/2024.0.0/#files

返信