blechta / pardiso-matlab-recipes

(Unofficial) build recipes for official Pardiso-Matlab bindings
BSD 2-Clause "Simplified" License
9 stars 2 forks source link

compile test gets stuck #2

Closed shiftlin89 closed 5 years ago

shiftlin89 commented 5 years ago

Thank you for your work I compile the mex file successfully, however, when I compile the test, it get stuck at here "The factors have 17 nonzero entries. On entry to DGER parameter number 9 had an illegal value On entry to DGER parameter number 9 had an illegal value ** On entry to DGER parameter number 9 had an illegal value The matrix has 4 positive and 0 negative eigenvalues. "

blechta commented 5 years ago

Matlab is shipped with BLAS with 64-bit integers, Pardiso runs only with BLAS with 32-bit integers. AFAIK, there is no way around it (unless Pardiso team fixes it). See https://github.com/blechta/pardiso-matlab-recipes#warning-blas-integer-size-issue.

Only working solution is to use 32-bit wide integers BLAS like in test32.sh, which nevertheless breaks some Matlab's builtins...

shiftlin89 commented 5 years ago

Appreciate for your response!

I think I succeed to run the comd: sudo ./make_pardiso_wrappers.sh and got the compiled files but when I test the example use the compiled files(include the path build32 into the matlab path), It stuck at: (see the information 1)

I understand that the pardiso can't accommodate the 64 BLAS and should use 32 bit BLAS, but does my 64 bit matlab can run the 32 bit BLAS? you said "make_openblas.shbuild single-threaded version, " this is one-thread version. pardiso use this BLAS library, can pardiso still run parallelly?

--------------------1. information of run test32.sh-------------------------------------------- @ubuntu:~/lz/pardiso/pardiso-matlab-recipes-master$ ./test32.sh

                        < M A T L A B (R) >
              Copyright 1984-2018 The MathWorks, Inc.
               R2018a (9.4.0.813654) 64-bit (glnxa64)
                         February 23, 2018

For online documentation, see http://www.mathworks.com/support For product information, visit www.mathworks.com.

The factors have 17 nonzero entries. The matrix has 3 positive and 1 negative eigenvalues. (never move)

------------------------information of compile the pardiso------------------------------------ @ubuntu:~/lz/pardiso/pardiso-matlab-recipes-master$ sudo ./make_pardiso_wrappers.sh --2019-06-07 16:10:42-- https://pardiso-project.org/manual/pardiso-matlab.tgz Resolving pardiso-project.org (pardiso-project.org)... 83.169.37.157 Connecting to pardiso-project.org (pardiso-project.org)|83.169.37.157|:443... connected. HTTP request sent, awaiting response... 416 Requested Range Not Satisfiable

The file is already fully retrieved; nothing to do.

Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully.

blechta commented 5 years ago

It stuck at:

I have no idea why. It should not be happening.

but does my 64 bit matlab can run the 32 bit BLAS?

Depends. If you don't call any Matlab routine which uses BLAS you're fine. See https://github.com/blechta/pardiso-matlab-recipes#warning-blas-integer-size-issue.

this is one-thread version. pardiso use this BLAS library, can pardiso still run parallelly?

See the Pardiso manual. It is explained there that BLAS should always be configured to run non-threaded.

BTW, I strongly advise against using sudo. All compile steps can be done in user directory, without root privileges.

Mbakhov commented 4 years ago

Appreciate for your response!

I think I succeed to run the comd: sudo ./make_pardiso_wrappers.sh and got the compiled files but when I test the example use the compiled files(include the path build32 into the matlab path), It stuck at: (see the information 1)

I understand that the pardiso can't accommodate the 64 BLAS and should use 32 bit BLAS, but does my 64 bit matlab can run the 32 bit BLAS? you said "make_openblas.shbuild single-threaded version, " this is one-thread version. pardiso use this BLAS library, can pardiso still run parallelly?

--------------------1. information of run test32.sh-------------------------------------------- @ubuntu:~/lz/pardiso/pardiso-matlab-recipes-master$ ./test32.sh

                        < M A T L A B (R) >
              Copyright 1984-2018 The MathWorks, Inc.
               R2018a (9.4.0.813654) 64-bit (glnxa64)
                         February 23, 2018

For online documentation, see http://www.mathworks.com/support For product information, visit www.mathworks.com.

The factors have 17 nonzero entries. The matrix has 3 positive and 1 negative eigenvalues. (never move)

------------------------information of compile the pardiso------------------------------------ @ubuntu:~/lz/pardiso/pardiso-matlab-recipes-master$ sudo ./make_pardiso_wrappers.sh --2019-06-07 16:10:42-- https://pardiso-project.org/manual/pardiso-matlab.tgz Resolving pardiso-project.org (pardiso-project.org)... 83.169.37.157 Connecting to pardiso-project.org (pardiso-project.org)|83.169.37.157|:443... connected. HTTP request sent, awaiting response... 416 Requested Range Not Satisfiable

The file is already fully retrieved; nothing to do.

Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully. Building with 'g++'. Warning: You are using gcc version '6.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release. MEX completed successfully.

Did ypu solve the issue? Current;ly I'm facing the same issue, Pardiso download file for GCC-8 while MATLAB 's MEX is asking GCC-6.3 . Running with GCC-8 both and running also both with GCC-6.3 brings the same issue you've faced.

blechta commented 4 years ago

I tested new combinations of Matlab, GCC, and Pardiso versions; see c839e0cf35. Just ignore the MEX warnings about GCC version. If test32.sh runs, you're good.