How to install pardiso solver ( matlab version ) on windows?
58 次查看(过去 30 天)
显示 更早的评论
Hi all,
I'm trying to solve Ax=b where A is a large sparse, real non-symmetric matrix.
I searched pardiso solver and found a matlab version which needs to be installed before use ( the package download address ).
I need to write a makefile for installing, however, my OS is win10 and I don't know how to use makefile. Therefore, I wonder if there is someone kindly help me with that. Thanks a lot!
1 个评论
回答(3 个)
Walter Roberson
2016-5-31
编辑:Walter Roberson
2016-9-1
For the gfortran libraries see
One version of the pthreads library for windows is at https://sourceforge.net/projects/pthreads4w/ and see also http://stackoverflow.com/questions/19467455/how-to-set-up-pthreads-on-windows and https://sourceforge.net/p/mingw-w64/wiki2/Compile%20pthreads/ and http://stackoverflow.com/questions/28036686/use-pthreads-in-mingw-in-win7
The Pardiso 5.0 user manual says in section 3.3,
"The current version of PARDISO requires the Intel compilers and Microsoft Visual Studio 2012 compilers are installed on your system. This might require that the machine PARDISO runs on has VS2K8 installed (or the Windows SDK for Windows Server 2012)"
My recollection is that the VS compilers might not support pthreads but that the Intel compilers do. I do not know if there would be a problem in the compiling of the C++ source: with the VS compilers: it might be.
(Semi-related article: https://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/)
0 个评论
Francisco Ramírez
2016-5-31
Hello Alston, I have the same problem (Trying to compile PARDISO on MATLAB using Win10x64). The first example that I try to compile is "pardisoinit" with the following mex command:
mex -LC:\Users\fjram\libpardiso500-WIN-X86-64 -llibpardiso500-WIN-X86-64 -lmwlapack -lmwblas -lgfortran -lpthread -lm -output pardisoinit common.cpp matlabmatrix.cpp sparsematrix.cpp pardisoinfo.cpp pardisoinit.cpp % no work
However, the above instruction produce the following error:
Error using mex
MEX cannot find library 'gfortran' specified with the -l option.
MEX looks for a file with one of the names:
gfortran.lib
libgfortran.lib
Please specify the path to this library with the -L option.
But I don't have any FORTRAN compiler. This is mandatory? I remove the following compiler flags (the only way to avoid compilation errors):
-lgfortran -lpthread -lm
And I get the following:
mex -LC:\Users\fjram\libpardiso500-WIN-X86-64 -llibpardiso500-WIN-X86-64 -lmwlapack -lmwblas -output pardisoinit common.cpp matlabmatrix.cpp sparsematrix.cpp pardisoinfo.cpp pardisoinit.cpp
Building with 'Microsoft Visual C++ 2015 Professional'.
MEX completed successfully.
But when I execute the MEX file, another kind of error appear:
info = pardisoinit(-2,0)
Invalid MEX-file
'C:\Users\fjram\Documents\MATLAB\pardiso-matlab\pardisoinit.mexw64': No se puede
encontrar el módulo especificado.
Any more suggestions?
7 个评论
Rylan
2021-8-10
编辑:Rylan
2021-8-10
@Walter RobersonI also met the same question, i.e. MEX cannot find library 'gfortran' specified with the -l option. However, when I run the command "mex -setup fortran", the output are as follows:
MEX configured to use 'Intel Parallel Studio XE 2021 for Fortran With Microsoft Visual Studio 2017' for FORTRAN language compilation.
In my desktop, both the IntelOne API KIT and the Intel HPC KIT is installed, and the mex file is editted according to MEX: How to modify xml file for unsupported compiler? - MATLAB Answers - MATLAB Central (mathworks.cn). I've confirmed that the fortran compiler can compile the .f90 file.
I think the fotran compiler is already installed, however, it cannot be recongnized for this compilation.
So what should I do?
Barbara
2022-10-14
Maybe this helps: https://www.mathworks.com/matlabcentral/fileexchange/119053-add-pardiso-lib-to-matlab-in-windows-10
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Troubleshooting in MATLAB Compiler SDK 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!